Nodejitsu/MongoHQ アプリで MongoDB にドキュメントを保存する際に問題があります。ローカルではすべて正常に動作しますが、MongoHQ db には認証が必要であり、ユーザー/パスの動作で失敗します (同じ資格情報を使用して MongoDB シェルに接続すると正常に動作します)。関数は次のとおりです。
var update_user = function(user, callback) {
var client = new Db(db, new Server(host, port, {}));
var update = function (err, collection) {
collection.findOne({uid:user.id}, function(err, doc) {
if (err) { throw err; }
if (!doc) doc = { uid: user.id }
doc.img = user.img;
doc.name = user.name;
collection.save(doc, {safe: true}, function(err, doc) {
if (err) { throw err; }
callback(user);
});
});
};
client.open(function(err, client) {
if (err) { throw err; }
client.authenticate(user, pass, function(err, result) {
client.collection('users', update);
});
});
}
ここで何が間違っていますか?
UPD: 認証メソッドの err パラメータには次の値があります:
{ [MongoError: auth fails] name: 'MongoError', errmsg: 'auth fails', ok: 0 }
保存されたパスワードとユーザー名をもう一度確認しましたが、MongoHQ シェルにログインするために機能します。