使用 node.js 命令行参数作为环境变量

Use node.js commandline argument as environment variable

我用

调用我的 node.js 应用程序
node index.js a=5

我想在我的代码中直接使用值“5”作为环境变量,例如

const myNumber = process.env.a

(如所述 here)。

如果我尝试以上操作,'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

您可以使用下面的代码访问它。它只是 return 传入的第一个值的值。

// node index.js a=5
process.argv[2]

您需要获取第 2nd 个索引,因为前两个只是命令行索引。


如果你想传递一个环境变量,你需要在运行执行命令之前设置它,就像这样。

$ a=5 node index.js

然后您可以使用 process.env 访问它,正如您已经指定的那样。