사용자 삽입시 CouchDB에서 임의로 오류가 발생합니다.nano를 사용하여 사용자를 삽입 할 때 CouchDB에서 '404 missing'오류가 발생합니다.
{ [Error: missing]
name: 'Error',
scope: 'couch',
status_code: 404,
'status-code': 404,
request:
{ method: 'POST',
headers:
{ 'content-type': 'application/json',
accept: 'application/json',
'X-CouchDB-WWW-Authenticate': 'Cookie',
cookie: [Object] },
uri: 'http://127.0.0.1:5984/_users',
body: '{"_id":"org.couchdb.user:fake_user","name":"fake_user","realname":"fake user","institution":"366a8e5ba861bdd9cad5cd318a002ee4","email":"[email protected]","phone":"123-456-7890","type":"user","roles":[],"password":"123456","level":"user","unconfirmed":"true"}',
jar: false },
headers:
{ date: 'Tue, 21 Jan 2014 20:32:23 GMT',
'content-type': 'application/json',
'cache-control': 'must-revalidate',
'status-code': 404,
uri: 'http://127.0.0.1:5984/_users' },
errid: 'non_200',
error: 'not_found',
reason: 'missing',
description: 'missing',
stacktrace:
[ 'Error: missing',
' at Request._callback (/apps/arcapp/node_modules/nano/nano.js:304:39)',
' at Request.self.callback (/apps/arcapp/node_modules/nano/node_modules/request/request.js:129:22)',
' at Request.EventEmitter.emit (events.js:98:17)',
' at Request.<anonymous> (/apps/arcapp/node_modules/nano/node_modules/request/request.js:873:14)',
' at Request.EventEmitter.emit (events.js:117:20)',
' at IncomingMessage.<anonymous> (/apps/arcapp/node_modules/nano/node_modules/request/request.js:824:12)',
' at IncomingMessage.EventEmitter.emit (events.js:117:20)',
' at _stream_readable.js:872:14',
' at process._tickCallback (node.js:415:13)' ] }
이것은 분명히 매우 통찰력이되지 않습니다 :
여기 CouchDB를에서 전체 응답이다. 내가 얻는 것은 error: not_found, reason: missing
이다. 그것은 나에게 많이 말하지 않는다. 가끔씩 만 발생하기 때문에 실제로 무엇이 트리거되는지 알 수는 없습니다. 이것에 대한 어떤 통찰력이라도 대단히 감사하겠습니다.
편집 : 여기에 관련 코드가 있습니다. nano을 사용하고 있지만, CouchDB에 대한 기본 게시물 요청 일뿐입니다.
var user = {
"_id": "org.couchdb.user:" + username,
"name": username,
"realname": first + " " + last,
"institution": institution,
"email": email,
"phone": phone,
"type": "user",
"roles": [],
"password": password,
"level": "user",
"unconfirmed": "true",
"verificationCode": verificationCode
};
nano.request({
db: '_users',
method: 'POST',
body: user
}, function(err, body) {
if(err) {
console.log("ERROR INSERTING USER");
console.log(err);
res.send(err.status_code + " " + err.reason, err.status_code);
return;
}
...
관리자가 아닌 이상 역할을 설정할 수 없지만 최소한 빈 역할 배열을 게시해야한다고 생각합니다. 나는 나중에 기회가있을 때 코드로 업데이트 할 것이다. –
관련 코드를 추가했습니다. –