用mongojs在heroku上连接到mongoHQ

我正尝试从我的node.js应用程序连接到mongoHQ。 这是我正在使用的代码:

var databaseUrl = "mongodb://fishcuss:MyPassword@alex.mongohq.com:10015/app9759558" var collections = ["users"] var db = require("mongojs").connect(databaseUrl, collections); exports.register = function(req, res){ console.log("Register hit") var user = req.body; db.users.findOne({username:user.username}, function(err, users) { console.log(err) console.log(users); if( err || users) { res.statusCode = 500; res.end(); } else { console.log("Inserting new user") user._id = uuid.v4(); user.lists = []; db.users.insert(user,{},function(){ req.session.user=user res.write(JSON.stringify(user), 'UTF-8'); res.statusCode = 200; res.end(); }) } ; }); }; 

不过,我似乎得到这个错误

 { [MongoError: auth fails] name: 'MongoError', errmsg: 'auth fails', ok: 0 } 

这导致我相信我错过了一些与我有关的东西。 任何人都有一个暗示,可能是什么?

谢谢

我不知道为什么你的代码不起作用,但我相信你需要在打开连接后进行身份validation。

我也使用Heroku + MongoLAB,并使用mongo-db-native驱动程序。 这个组合似乎工作得很好。

看看我在下面做什么:

 var mongodb = require('mongodb'); mongo_client = new mongodb.Db(mongo_db_name, new mongodb.Server(mongo_url, mongo_port), {safe:true}); mongo_client.open(function(err, p_client) { if (err) console.warn("MONGO ERROR:" + err.message); p_client.authenticate(mongo_db_username,mongo_db_password,{},function(err,success){ if (err) { console.warn("MONGO ERROR: unauthorized "+ err.message); } else { console.log("MONGO Authorized"); mongo_messages_collection = new mongodb.Collection(p_client, 'messages'); } }); }); 

可能是您使用的用户名/密码不匹配。 如果您不确定,请在mongohq控制台上创build一个新用户并使用这些凭证。