【问题标题】:Connecting to mongoHQ with mongojs on heroku在 heroku 上使用 mongojs 连接到 mongoHQ
【发布时间】:2013-01-22 04:03:12
【问题描述】:

我正在尝试从我的 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 }

这让我相信我在联系中遗漏了一些东西。有人知道那可能是什么吗?

谢谢

【问题讨论】:

    标签: node.js mongodb heroku mongohq mongojs


    【解决方案1】:

    我不确定为什么您的代码不起作用,但我相信您需要在打开连接后进行身份验证。

    我也使用 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');
            }
        });
    });
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-11-26
        • 2012-12-22
        • 2012-08-23
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 2011-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多