【发布时间】:2016-12-20 13:49:12
【问题描述】:
我有一个简单的 Node.js,它使用 mongoose 连接 mLab 上托管的 Mongo 数据库。
一切似乎都很好:添加新记录、查询现有内容。
只是有时,在一段时间不活动后,当我查看控制台时,我会看到以下内容:
events.js:160
throw er; // Unhandled 'error' event
^
Error: connection timeout
at Db.<anonymous> (___PATH___/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:168:17)
at emitTwo (events.js:106:13)
at Db.emit (events.js:191:7)
at Server.listener (___PATH___/node_modules/mongodb/lib/db.js:1786:14)
at emitOne (events.js:96:13)
at Server.emit (events.js:188:7)
at Server.<anonymous> (___PATH___/node_modules/mongodb/lib/server.js:274:14)
at emitOne (events.js:96:13)
at Server.emit (events.js:188:7)
at Pool.<anonymous> (___PATH___/node_modules/mongodb-core/lib/topologies/server.js:334:12)
at emitOne (events.js:96:13)
at Pool.emit (events.js:188:7)
at Connection.<anonymous> (___PATH___/node_modules/mongodb-core/lib/connection/pool.js:270:12)
at Connection.g (events.js:292:16)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:191:7)
现在这对我来说并不重要 - 我总是可以重新启动应用程序。我担心在生产中会引起很多头痛,所以我先发制人地问这里有什么问题?
请注意,最初一切正常,过了一段时间我收到Error: connection timeout
【问题讨论】:
-
即使我面临同样的问题,有什么突破吗?
-
@CleanCrispCode 推动了支持...过去几天我没有在处理这段代码。
-
你有什么解决办法吗? @MichalStefanow
-
我怀疑这可能是我的电脑进入睡眠状态。 - 是的,当你的电脑进入睡眠状态时,它可能会关闭它打开的连接套接字您的 mLab 数据库。 - * 我建议您从与 mLab 数据库相同的云数据中心开始测试您的应用程序。这样,您的应用程序就不会受到您的计算机是否处于活动状态的影响,并且您还可以从延迟和安全角度受益:docs.mlab.com/security/#network* - 没有想法...没有彻底测试。