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

4
我使用以下命令调用我的Node.js应用程序:
node index.js a=5

我想直接在我的代码中使用数值“5”作为环境变量。
const myNumber = process.env.a

(如此处所述here)。

如果我尝试上述操作,则在运行时'MyNumber'未定义。

解决方案

  • Linux:
a=5 node index.js
  • Windows(Powershell):
    $env:a="5";node index.js
3个回答

5

当执行 node index.js a=5 时,a=5 是 node 的一个参数,就像 index.js 一样。

如果您想传递一个环境变量,必须在 node 命令之前指定它:a=5 node index.js

Node 的 process.env 将填充您的 bash 环境变量。


谢谢!那个有效。顺便说一句:我在使用Windows操作系统。因此,环境变量可以与 $env:a="5" 在之前的命令中使用(不是在同一行)。 - CPI

1

现在,当您运行以下命令时,它会为 Node.js(您的index.js文件)设置一个参数。

$ node index.js a=5

您可以使用以下代码访问此内容。它将简单地返回传递的第一个值的值。
// node index.js a=5
process.argv[2]

你需要获取第二个索引,因为前两个只是命令行。


如果您想传递一个环境变量,您需要在运行命令之前设置它,如下所示。
$ a=5 node index.js

然后,您可以使用process.env访问它,因为您已经指定了。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接