#javascript #node.js #mongodb #express
#javascript #node.js #mongodb #экспресс
Вопрос:
Я использую сервер NodeJS для записи данных в базу данных MongoDB. Он хорошо работает для нескольких тысяч записей. Затем он случайным образом выходит из строя со следующим сообщением об ошибке.
В нем говорится, что db не определен, я четко определил это, как здесь.
Я не понимаю, почему определение «db» внезапно удаляется через некоторое время. Я хочу использовать этот сервер как минимум за час до сбоя. Может кто-нибудь указать, что я делаю неправильно?
Дополнительные примечания :
- Я использую
var app = express()
для создания экспресс-приложения, иapp.post("/saveData", function(req, res)
функция обрабатывает HTTP post-запрос как обычно. - Экспресс прослушивает порт 90 с помощью
app.listen(90,function()
- Я использую bodyParser для обработки данных JSON
- Сервер NodeJS и база данных MongoDB размещены локально.
- Я использую
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. Спасибо всем за ваши предложения и указание мне правильного направления. Я каждый раз инициировал новое соединение для отправки данных. Я исправил это, и теперь, похоже, все работает нормально. Большое вам спасибо.