Подтвердить что ты не робот

MongoDB mLab mongoose Node.js драйвер - время ожидания соединения после периода простоя?

У меня есть простой Node.js, который использует mongoose для подключения к базе данных Mongo, размещенной на mLab. > .

Все работает отлично: добавление новых записей, запрос на существующий материал.

Только иногда, после некоторого периода бездействия, когда я смотрю на консоль, я вижу следующее:

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

4b9b3361

Ответ 1

1) кажется, что в вашем интернет-соединении происходят колебания. Возможно, это причина таймаута соединения. 2), или вы можете справиться с этим, установив тайм-аут

var timeout = require('connect-timeout');
app.use(timeout('5s'));

в файле app.js