2013-02-06 1 views
2

내 node.js 앱에서 mongoHQ에 연결하려고합니다. heroku에서 mongojs로 mongoHQ에 연결

var databaseUrl = "mongodb://fishcuss:[email protected]: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 } 

을 얻을 수가 : 여기 내가 사용하고 코드입니다. 누구든지 그게 무엇인지에 대한 암시를 가지고 있습니까? 코드가 작동하지 않는 이유

덕분에

답변

0

잘 모르겠어요하지만 난 당신이 연결을 연 후 인증 할 필요가 믿습니다.

또한 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'); 
     } 
    }); 
}); 
0

아마, 당신이 사용하고있는 사용자 이름/암호가 일치하지 않습니다. 확신이 없다면, mongohq 콘솔에 새로운 사용자를 만들고 그 자격 증명을 사용하십시오.