Сбой NodeJS после нескольких тысяч записей в MongoDB

#javascript #node.js #mongodb #express

#javascript #node.js #mongodb #экспресс

Вопрос:

Я использую сервер NodeJS для записи данных в базу данных MongoDB. Он хорошо работает для нескольких тысяч записей. Затем он случайным образом выходит из строя со следующим сообщением об ошибке.

В нем говорится, что db не определен, я четко определил это, как здесь.

Я не понимаю, почему определение «db» внезапно удаляется через некоторое время. Я хочу использовать этот сервер как минимум за час до сбоя. Может кто-нибудь указать, что я делаю неправильно?

Дополнительные примечания :

  1. Я использую var app = express() для создания экспресс-приложения, и app.post("/saveData", function(req, res) функция обрабатывает HTTP post-запрос как обычно.
  2. Экспресс прослушивает порт 90 с помощью app.listen(90,function()
  3. Я использую bodyParser для обработки данных JSON
  4. Сервер NodeJS и база данных MongoDB размещены локально.
  5. Я использую updateOne для отправки данных в существующий документ следующий код.
 dbObject.updateOne(
                {name: "AKILA"}, 
                {'$push': {Temperature: temp}},
                function (err) {
                                if (err) {res.send("DB Error");}
                                else{res.send("Data Sent");}
                                }
                   );
  

Комментарии:

1. Как вы управляете подключениями к БД? Вы каждый раз закрываете соединение?

2. Привет, Акила Уянварра, можете ли вы включить текст ошибок и код вместо изображений, чтобы информация в вопросе была доступна для поиска. Также код, на который ссылается ошибка, строка 48 из server.js

3. Скорее всего, вы получаете ошибку и НЕ проверяете эту ошибку, а затем, когда вы пропускаете этот знак остановки, вы получаете undefined ошибку, которую видите. Например, этот код прямо здесь, на вашем изображении i.stack.imgur.com/T6oax.jpg не проверяет наличие ошибки в .connect() методе. РЕГИСТРИРУЙТЕ и обрабатывайте все возможные ошибки, и ваша проблема станет ясной! К вашему сведению, это одно из основных правил разработки серверного кода. Регистрируйте и обрабатывайте ВСЕ возможные ошибки.

4. Скорее всего, основная причина ошибки, на которую вы не обращаете внимания, заключается в том, что вы пропускаете какой-то ресурс и в конечном итоге у вас заканчивается (возможно, соединение с БД). Если вы зарегистрируете все ошибки, это, вероятно, поможет вам определить, с каким типом ресурса у вас возникла проблема.

5. Спасибо всем за ваши предложения и указание мне правильного направления. Я каждый раз инициировал новое соединение для отправки данных. Я исправил это, и теперь, похоже, все работает нормально. Большое вам спасибо.