Подтвердить что ты не робот

Node.js навсегда с переменной окружения

Команда, запускаемая на моем сервере для запуска моего приложения node:

sudo IS_PROD=1 node app.js

Я навсегда установил, но не могу передать переменную окружения.

sudo IS_PROD=1 forever node app.js

Кажется, это не трюк. Я попробовал несколько разновидностей этого. Как я могу успешно выполнить эту команду или навсегда установить переменную среды?

4b9b3361

Ответ 1

Прежде всего, вы должны пропустить команду node в вашей команде, ее не должно быть, вы не сможете ее выполнить. автоматически запускает ваш script с помощью . Вместо этого вы должны сделать так:

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).