У меня проблемы с сохранением документа в MongoDB в моем приложении Nodejitsu/MongoHQ. Локально все работает нормально, но для базы данных MongoHQ требуется аутентификация, и она не работает с рабочим пользователем/паролем (подключение к оболочке 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.
err
обратного вызоваclient.authenticate
какие-либо подсказки? Похоже, вы просто игнорируете это. - person JohnnyHK   schedule 16.09.2012