2016-01-05 2 views
2

Я знаю, как передавать переменные node.js с помощью pm2. Но как я их читаю? process.argv не содержит.Прочитайте аргументы командной строки, переданные node.js, используя pm2

Это то, о чем я говорю.

Passing environment variables to node.js using pm2

UPDATE

pm2 start file_name.js -- -my_port 8080 правильный способ сделать это. process.argv будет содержать аргументы.

Но работает pm2 describe file_name Показывает args -3000, который является кешированным значением. Перезапуск системы дает мне аргумент, который был передан последнему перед перезагрузкой, что в моем случае было 3000.

+0

Просьба представить пример того, как вы передаете переменные. – MattTannahill

+0

Здесь pm2 начало извлечения.js - -порт 80 –

+0

Удаление процесса и перезапуск не помогли. –

ответ

3

Я думаю, вы в заблуждение:

  • node_args

список node_args [ "--harmony", "--max стека размера = 1024"] аргументы приведены в узел, когда он будет запущен

Те node исполняемые опции, как --harmony или --debug=7001 , Для получения дополнительной информации см node --help

  • args

список арг [ "--enable-журналы", "-n", "15"] аргументы, приведенные в приложении, когда он запускается

Это ваши аргументы в сценарии. В декларации JSon это arg свойство, а в командной строке синтаксис:

pm2 start app.js -- arg1 arg2 

Они должны быть доступны в process.argv.

Reference

+0

Спасибо, я был немного смущен. Это аргументы командной строки, которые я хочу передать. После выполнения следующей команды PM2 начать fetch.js - -port 3000 Я получил это в process.argv [ '/ USR/BIN/nodejs', «/ USR/Библиотека/node_modules/PM2 /lib/FetchFork.js ', ' -port ', ' 80 '] –

+0

Порт 80 - это то, что я вчера вынес в качестве аргумента. Настолько ясно, что здесь происходит какое-то кеширование. –

+0

Да, когда процесс в аргументах памяти может оставаться неизменным. Перезапустите его с новыми аргументами, если он уже запущен. – soyuka

0

От Node.js doc about process.argv:

Массив, содержащий аргументы командной строки.

Он не содержит переменных среды. Вы можете получить доступ к переменной ENV_VARIABLE среды с использованием

process.env.ENV_VARIABLE 

См this answer.