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服务器。任何帮助都非常感谢。
答案 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是否未阻止本地网络共享。