Node.js Обработка Сбоев Сервера

Есть ли способ, как я могу сделать некоторые вещи обновления базы данных всякий раз, когда мой сервер node.js падает или останавливается. подобно try{}catch(){}finally(){} в ЯВА. Я немного новичок здесь.

Есть ли какие-либо события, которые узел будет излучать до того, как он отключится. Если так, то я могу написать свою функцию там.

У меня есть сценарий, если я остановлю сервер вручную, мне нужно обновить некоторые поля в базе данных. То же самое относится и к необработанным сбоям.

я здесь о домене в Node.js. Но я понятия не имею, как контролировать весь сервер, используя домен.

2 ответа

Решение

Событие генерируется, когда процесс узла собирается выйти:

process.on('exit', function(code) {
    console.log('About to exit with code:', code);
});

http://nodejs.org/api/process.html

Здесь вы не можете запросить базу данных, поскольку этот обработчик может выполнять только синхронные операции. Некоторые возможные альтернативы:

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

Когда вы используете узел JS, плохая практика - использовать try / catch из-за большого количества асинхронных вызовов. Лучшая практика здесь, чтобы использовать "обещания", просмотрите следующую ссылку, там вы можете найти хорошее объяснение: https://www.promisejs.org/

Другие вопросы по тегам