Ошибка: нет открытых соединений в Db._executeQueryCommand Node.js

У меня есть приложение узла, используемого с Express Framework. Это приложение работает без сбоев. Но вдруг, через некоторое время, он начинает выдавать ошибку

"Ошибка: нет открытых соединений в Db._executeQueryCommand"

Из приведенного выше описания ошибки я только что понял, что приложение узла может не установить соединение с базой данных.

Но, несмотря на эту ошибку, некоторые страницы, отображаемые приложением узла, могут работать.

Одна вещь, которую я хотел бы добавить, это то, что нет определенной страницы, на которой я получаю эту ошибку, я хочу сказать, что, предположим, в первый раз, я получаю эту ошибку на странице "/ foo", а не в "/ foo1" и "/ foo2".

Но, предположим, что когда я случайным образом обновляю страницы, страница, которая была загружена с ошибкой раньше, то есть "/ foo", может не выдавать ошибку, а страницы, загруженные ранее успешно, то есть "/ foo1" и "/ foo2", могут выдавать ошибку,

Число одновременных пользователей для приложения узла может быть не больше, примерно, они будут около 450.

Подробности: 1. Версия узла: v0.10.29 2. Экспресс-версия: 4.9.0 3. Версия MongoDB: 2.4.10 4. ОС Linux

Я искал много решений, но не нашел серьезной причины или даже решения для того же самого.

Любая помощь будет оценена.

1 ответ

Проверьте эту проблему, она предлагает использовать {auto_reconnect: true} для подключения к mongodb.

Также вы можете попробовать следующее

// Connect to mongodb
var connect = function () {
  var options = { server: { socketOptions: { keepAlive: 1 } } };
  mongoose.connect('mongodb://localhost/db1', options);
};

connect();

mongoose.connection.on('error', console.log);
mongoose.connection.on('disconnected', connect);
Другие вопросы по тегам