【发布时间】:2017-06-29 21:10:37
【问题描述】:
一般来说,我是 express/node 和 Web 编程的新手。当mongoose的mongodb连接超时时,处理这个错误的最佳方法是什么,我是这样连接的:
mongoose.connect(config.mongoUrl);
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'error connecting with mongodb database:'));
db.once('open', function() {
console.log('connected to mongodb database');
});
这是我的服务器运行时超时的错误:
连接 mongodb 数据库时出错:错误:连接超时 在数据库。 (C:\Users\Sean\OneDrive\webpages\000\lasttry\node_modules\mongoose\lib\drivers\node-mongodb-native\connection.js:169:17) 在 emitTwo (events.js:106:13) 在 Db.emit (events.js:191:7) 在 Server.listener (C:\Users\Sean\OneDrive\webpages\000\lasttry\node_modules\mongodb\lib\db.js:1798:14) 在 emitOne (events.js:96:13) 在 Server.emit (events.js:188:7) 在服务器。 (C:\Users\Sean\OneDrive\webpages\000\lasttry\node_modules\mongodb\lib\server.js:274:14) 在 emitOne (events.js:96:13) 在 Server.emit (events.js:188:7) 在游泳池。 (C:\Users\Sean\OneDrive\webpages\000\lasttry\node_modules\mongodb-core\lib\topologies\server.js:335:12) 在 emitOne (events.js:96:13) 在 Pool.emit (events.js:188:7) 在连接处。 (C:\Users\Sean\OneDrive\webpages\000\lasttry\node_modules\mongodb-core\lib\connection\pool.js:270:12) 在 Connection.g (events.js:291:16) 在 emitTwo (events.js:106:13) 在 Connection.emit (events.js:191:7)
【问题讨论】:
-
什么时候超时?如果节点进程因我的计算机进入睡眠状态而中断,我只会遇到猫鼬超时。
-
我正在使用 mLab,它是一个云 mongodb 服务。它似乎随机超时。我只见过它发生过两次,但如果我去生产它发生了,那将是一场噩梦,哈哈。
-
(参见文档。)[docs.mlab.com/timeouts/#connection-timeout]您需要设置一个连接超时值,就像我发布的答案一样。否则如果连接有任何小问题,它不会等待超时。
-
感谢+1的回答
-
没问题。祝你发展顺利