Node.js навсегда с переменной окружения
Команда, запускаемая на моем сервере для запуска моего приложения node:
sudo IS_PROD=1 node app.js
Я навсегда установил, но не могу передать переменную окружения.
sudo IS_PROD=1 forever node app.js
Кажется, это не трюк. Я попробовал несколько разновидностей этого. Как я могу успешно выполнить эту команду или навсегда установить переменную среды?
Ответы
Ответ 1
Прежде всего, вы должны пропустить команду node
в вашей команде, ее не должно быть, вы не сможете ее выполнить. forever автоматически запускает ваш script с помощью nodejs. Вместо этого вы должны сделать так:
sudo IS_PROD=1 forever app.js
Возможно, вы вместо запуска своего сервера на переднем плане захотите запустить свой сервер в качестве демона. например.
sudo IS_PROD=1 forever start app.js
Это создаст процесс в фоновом режиме, который будет смотреть ваше приложение node и перезагружать его, когда он выйдет. Для получения дополнительной информации см. readme.
Оба этих метода сохраняют переменные среды, как при использовании node
.
Ответ 2
app.js:
console.log(process.env.IS_PROD);
Используя node
(v0.8.21)
$ node app.js
undefined
$ IS_PROD=1 node app.js
1
$ sudo IS_PROD=1 node app.js
1
Использование forever
(v0.10.0)
$ forever app.js
undefined
$ IS_PROD=1 forever app.js
1
$ sudo IS_PROD=1 forever app.js
1
Документация:
process.env
Объект, содержащий пользовательскую среду. См. Раздел environ (7).