使用 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' 在运行时未定义。
解决方案
- Linux:
a=5 node index.js
- Windows(Powershell):
$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
访问它,正如您已经指定的那样。
我用
调用我的 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
当执行 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
访问它,正如您已经指定的那样。