MongoError:连接0到localhost:27017超时

时间:2016-12-30 10:41:44

标签: node.js mongodb mongoose

events.js:141
      throw er; // Unhandled 'error' event
MongoError: connection 0 to localhost:27017 timed out
at Function.MongoError.create (/home/ubuntu/scripts/node_modules/mongodb-core/lib/error.js:29:11)
    at Socket.<anonymous> (/home/ubuntu/scripts/node_modules/mongodb-core/lib/connection/connection.js:184:20)
    at Socket.g (events.js:260:16)
    at emitNone (events.js:67:13)
    at Socket.emit (events.js:166:7)
    at Socket._onTimeout (net.js:318:8)
    at _runOnTimeout (timers.js:524:11)
    at _makeTimerTimeout (timers.js:515:3)
    at Timer.unrefTimeout (timers.js:584:5)

在连接期间没有错误,但是当尝试保存某些模型/集合时,它会运行一段时间,然后它会抛出此错误。 BTW我还有另一个节点进程连接到同一个mongodb服务器。任何帮助都非常感谢。

4 个答案:

答案 0 :(得分:10)

const mongoose = require('mongoose');
const option = {
    socketTimeoutMS: 30000,
    keepAlive: true,
    reconnectTries: 30000
};

const mongoURI = process.env.MONGODB_URI;
mongoose.connect(mongoURI, option).then(function(){
    //connected successfully
}, function(err) {
    //err handle
});

答案 1 :(得分:4)

您的查询需要很长时间。而且mongo本身有一个默认的超时设置。因此,如果查询花费的时间超过超时时间,则超时。

答案 2 :(得分:2)

你必须在你的连接上使用这个配置: keepAlive:300000,connectTimeoutMS:30000

答案 3 :(得分:0)

如果您确定已导出端口-p 27017:2017,但仍然无法使用。

检查您的VPN是否未阻止本地网络共享。