Как я могу автоматически перезапустить приложение Node.js с помощью Forever и Nodemon (Windows)

Я запускаю приложение node.js в Windows и хочу, чтобы оно автоматически перезапускалось, если в коде есть необработанное исключение, которое приводит к остановке приложения.

Я провел некоторое исследование и обнаружил, что комбинация «Forever» и «Nodemon» может достичь этой цели.

Я установил оба пакета глобально на свое устройство с Windows 10.

npm install forever -g
npm install -g nodemon

Я попытался использовать следующую команду для запуска своего приложения:

forever start nodemon --exitcrash app.js

Однако я получаю следующую ошибку: «nodemon не существует»

Если попытаться просто запустить «nodemon», приложение запустится, что указывает на то, что пакет Nodemon установлен, однако это не позволит перезапустить приложение после сбоя.

Я делаю что-то неправильно? Большинство советов, которые я нахожу в Интернете, относятся только к системам Linux.


person cleverpaul    schedule 05.04.2018    source источник


Ответы (2)


Если вы уже используете навсегда, вы можете избавиться от nodemon. Вместо этого вы можете использовать комбинацию навсегда и модуля cluster. Просто разветвите worker в случае исключений, и это также сделает ваше приложение более масштабируемым!

Если все же nodemon предпочтительнее, попробуйте установить его глобально, используя флаг -g

person Anshul Verma    schedule 06.04.2018
comment
не было запроса на кластеризацию. - person Rajat banerjee; 07.04.2018

Forever и nodemon достигают двух совершенно разных целей

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

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

  • Исторически люди использовали Forever отдельно или с выскочками, работающими как служба Linux, одна из самых известных из которых — выскочка

  • В настоящее время нормой является использование PM2.

person Rajat banerjee    schedule 07.04.2018