我无法正确地将会话传递给CouchDB。这是我的代码:
var nano = require('nano')({
'url': 'http://myip:5984'
});
var conf = require('./conf');
nano.auth(conf.user.name, conf.user.password, function (err, body, headers) {
if (err) {
return callback(err);
}
if (headers && headers['set-cookie']) {
var nano = require('nano')({
'url':'http://myip:5984',
'cookie': headers['set-cookie']
});
}
});
但是当我打电话时,我总是得到以下信息:
Error: Bad DB response: {"error":"unauthorized","reason":"You are not authorized to access this db."}
答案 0 :(得分:0)
我尝试了您的代码,如果我提供正确的用户凭据,它对我有用。
我猜想此身份验证操作完成后,您的通话中可能存在错误。这是我测试过的代码:
var nano = require('nano')({
'url': 'http://localhost:5984'
});
nano.auth("sara", "banana", function (err, body, headers) {
if (err) {
return callback(err);
}
if (headers && headers['set-cookie']) {
console.log(headers['set-cookie']);
var nano = require('nano')({
'url':'http://localhost:5984',
'cookie': headers['set-cookie']
})
db = nano.use("userdb-73617261")
db.get("_all_docs").then(function(res)
{
console.log(res);
}).catch(function(err){console.log(err);});;
}
});
我想也许您试图调用nano实例而不是db实例或诸如此类?