无法从运行localhost的nodejs app连接到mongodb(mongolab)

时间:2014-11-03 17:00:35

标签: node.js mongodb heroku

我正在尝试使用以下代码进行连接 我在本地运行nodejs应用程序,我无法使用MongoDb Native Driver连接到MongoLab数据库。
大约30秒后,错误返回说:
{&#34; name&#34;:&#34; MongoError&#34;,&#34; message&#34;:&#34;列表中没有有效的种子服务器&#34;} < / p>

我应该在某处宣布其他内容吗?我错过了什么?
当我在Heroku上实时运行它连接就好了。
此外,当我从终端(shell)运行它时它连接得很好。

   var MongoClient = require('mongodb').MongoClient;
   var util = require('util');
   var assert = require('assert');

   var auth = {
     user: 'root',
     pass: 'blabla',
     host: 'blabla.mongolab.com',
     port: 63879,
     name: 'heroku_blabla'
   };

        // Connection URL
        var url = util.format('mongodb://%s:%s@%s:%d/%s',
            auth.user, auth.pass, auth.host, auth.port, auth.name);

        // Use connect method to connect to the Server
        MongoClient.connect(url, function(err, db) {
            assert.equal(null, err);
            console.log("Connected correctly to server");

            db.close();
        });   

1 个答案:

答案 0 :(得分:4)

我解决了,但我不知道是什么原因引起了这个问题 我怀疑这是一个DNS问题。

所以我去了终点站并开始运行:

ping  ds00000.mongolab.com

(将00000更改为MongoLab DB的端口)

检查主持人。

然后我跑:nc -w 3 -v ds000000.mongolab.com 000000

最后,如果这两个成功,那么端口不是问题。
那么,我使用mongoLab中该主机名的IP 更改了我的代码中的主机名,这解决了出现的错误。
注意:mongoLab数据库主机的IP出现在终端的第二个命令的响应中。