2014-01-07 4 views
0

어떻게 MongoClient.connect()를 사용하지 않고 멀리있는 데이터베이스 (MONGOHQ)에 연결할 수 있습니까?node.js를 사용하여 open을 통해 mongo에 연결

var db, mongo, server; 

mongo = require("mongodb"); 

server = new mongo.Server("mongodb://login:[email protected]:10057//appname", 10057, { 
auto_reconnect: true 
}); 

db = new mongo.Db("confirmed", server, { safe: true }); 

내 서버에서 얻을 메시지가

[Error: failed to connect to [mongodb://login:[email protected]:10057//appname:10057]] 

어떤 아이디어가?

+0

동일한 자격 증명을 사용하여 명령 줄 ['mongo' shell] (http://docs.mongodb.org/manual/reference/mongo-shell/)에서 연결할 수 있습니까? 샘플 명령 행 :'mongo -u login -p password paulo.mongohq.com : 10057/appname'. appname 앞에 여분의 "/"가 있고 포트 번호 (10057)도 중복 된 것 같습니다. 귀하의 Node.js 연결 문자열은'server = new mongo.Server ("mongodb : // login : [email protected] : 10057/appname");'이어야합니다. – Stennie

답변

1

당신은 더 당신이 DNS 이름 (아무 프로토콜, 포트, 인증 또는 경로)로 서버를 정의 곳, 뭔가를 원하는 :

server = new mongo.Server("paulo.mongohq.com", 10057, { 
    auto_reconnect: true 
}); 

db = new mongo.Db("confirmed", server, { safe: true }); 

및 DB가 정의되어 다음 번 :

db.open(function(erreur, db) { 
    db.authenticate('user', 'name', function(err, result) { 
     // 
    }); 
+0

사용할 URL은 paulo.mongohq.com/appname입니까? – maximegir

+0

@maximegir 아니요, 어딘가에서 앱 이름을 지정해야합니다. mongo에 익숙하지 않지만 docs (또는 SO의 다른 곳)에서 정보를 찾으면 URL이 아닌 IP 주소 나 DNS 이름에 연결된다는 것을 알 수 있습니다. – brandonscript