Я вызываю свое приложение node.js с помощью
node index.js a=5
Я хочу использовать значение «5» непосредственно в качестве переменной среды в моем коде, например
const myNumber = process.env.a
(как заявлено здесь).
Если я попытаюсь сделать это выше, «MyNumber» не будет определен во время выполнения.
a=5 node index.js
$env:a = "5";node index.js
При выполнении node index.js a=5
a=5
является аргументом узла, как и index.js.
Если вы хотите передать переменную среды, вы должны указать ее перед командой узла: a=5 node index.js
.
Узел process.env
заполнен вашими переменными среды bash.
a=5
— это аргумент вашего скрипта, а не переменная среды. для доступа к аргументу в скрипте используйте process.argv
https://nodejs.org/en/knowledge/command-line/how-to-parse-command-line-arguments/
Прямо сейчас, когда вы запускаете следующую команду, она устанавливает аргумент для Node.js (ваш файл index.js
).
$ node index.js a=5
Вы можете получить к нему доступ, используя приведенный ниже код. Он просто вернет значение, переданное первым значением.
// node index.js a=5
process.argv[2]
Вам нужно получить индекс 2nd, так как первые 2 — это просто командная строка.
Если вы хотите передать переменную среды, вам нужно установить ее перед запуском команды, как так.
$ a=5 node index.js
Затем вы можете получить к нему доступ с помощью process.env
, как вы уже указали.
Благодарю вас! Это работает. Кстати: я на Windows. Таким образом, переменную среды можно использовать с
$env:a = "5"
в предыдущей команде (не в той же строке).