2 行 NodeJS 应用程序在尝试连接到 mongolab MongoDB 数据库时在 mongoose.connect() 上崩溃

2-line NodeJS application crashes on mongoose.connect() while trying to connect to a mongolab MongoDB database

我有以下 NodeJS 代码:

var mongoose = require('mongoose');
mongoose.connect('mongodb://dev:dev@ds031632.mongolab.com:31632/mongodev');

在 运行 上 node server.js,它挂断了几秒钟并抛出以下内容:

C:\Users\dev\work\code\local\nodejsplayground\restwithmongo\nod
dules\mongoose\node_modules\mongodb\lib\server.js:228
        process.nextTick(function() { throw err; })
                                            ^
Error
    at Object.<anonymous> (C:\Users\dev\work\code\local\nodejsp
round\restwithmongo\node_modules\mongoose\node_modules\mongodb\node_modules\mong
core\lib\error.js:42:24)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (C:\Users\dev\work\code\local\nodejsp
round\restwithmongo\node_modules\mongoose\node_modules\mongodb\node_modules\mong
core\index.js:2:17)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)

我通过控制台通过这个 ping 服务器:

ping ds031632.mongolab.com

我尝试使用 windows 安装程序安装 mongodb,但它仍然无法正常工作

如果连接到 mongodb 时出现错误而没有调用错误回调,则会发生此错误。要修复此错误(并获取实际错误),请将回调添加到 .connect 方法,或者绑定到错误事件。

mongoose.connect(config.mongodb, function (err) {
  if (err) {
    console.log(err);
  }
});

mongoose.connect(config.mongodb);

var db = mongoose.connection;

db.on('error', function (err) {
  console.log('mongodb connection error: %s', err);
  process.exit();
});
db.once('open', function () {
  console.log('Successfully connected to mongodb');
  app.emit('dbopen');
});

如果你发现没有任何反应,只是挂起,等待30秒左右就会超时,这只是意味着mongoose无法连接到mongodb,这可能是由一个非常大的数字引起的不同的东西,主要与 network/dns/firewall/server 配置有关。