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

时间:2015-04-28 17:35:49

标签: windows node.js mongodb mongoose mlab

我有以下NodeJS代码:

2.147483647 × 10^9

在使用var mongoose = require('mongoose'); mongoose.connect('mongodb://dev:dev@ds031632.mongolab.com:31632/mongodev'); 运行它时,它会挂起几秒钟并抛出以下内容:

node server.js

我通过控制台通过以下方式ping服务器:

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)

我尝试使用Windows安装程序安装mongodb并且它仍然无法正常工作

1 个答案:

答案 0 :(得分:1)

如果在没有调用错误回调的情况下连接到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秒左右就会超时,这只是意味着猫鼬无法连接到mongodb,这可能是由很多不同的事情造成的,主要与网络/ DNS /防火墙/服务器配置有关。