2014-01-07 53 views
0

如何在不使用MongoClient.connect()的情況下連接到遠程數據庫(MONGOHQ)?通過使用node.js通過打開連接到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登錄-p密碼paulo.mongohq.com:10057/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.open(function(erreur, db) { 
    db.authenticate('user', 'name', function(err, result) { 
     // 
    }); 
+0

要使用的網址是paulo.mongohq.com/appname? – maximegir

+0

@maximegir不,你需要在其他地方指定應用程序名稱;不太熟悉mongo,但是如果你查看文檔中的信息(甚至是其他地方),你會發現它連接到一個IP地址或DNS名稱,而不是URL。 – brandonscript