使用node.js命令行参数作为环境变量
我将我的node.js应用程序调用,
node index.js a=5
我想直接将值'5'用作我的代码中的环境变量
const myNumber = process.env.a
(如说明此处)。
如果我尝试以上内容,则“ mynumber”在运行时是不确定的。
解决方案
- Linux:
a=5 node index.js
- Windows(PowerShell):
$env:a="5";node index.js
I call my node.js application with
node index.js a=5
I want to use the value '5' directly as an environment variable in my code like
const myNumber = process.env.a
(like stated here).
If I try the above, 'MyNumber' is undefinded on runtime.
Solution
- Linux:
a=5 node index.js
- Windows (Powershell):
$env:a="5";node index.js
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当执行
node index.js a=5
时,a=5
是node的参数,就像index.js一样。如果要传递环境变量,则必须在节点命令之前指定:
a=5 node index.js
。节点
process.env
填充有您的 bash 环境变量。When doing
node index.js a=5
,a=5
is an argument for node, as index.js is.If you want to pass an environment variable, you must specify it before node command :
a=5 node index.js
.The node
process.env
is populated with your bash environment variables.a=5
是脚本的参数,而不是环境变量。要访问脚本中的参数,请使用process.argv
https://nodejs.org/en/knowledge/command-line/how-to-parse-command-line-arguments/
a=5
is an argument to your script not an environment variable. to access the argument in the script useprocess.argv
https://nodejs.org/en/knowledge/command-line/how-to-parse-command-line-arguments/
现在,当您运行以下命令时,它正在为 Node.js(您的
index.js
文件)设置一个参数。您可以使用下面的代码访问它。它只会返回传入的第一个值。
您需要获取第二个索引,因为前两个只是命令行索引。
如果要传递环境变量,则需要在运行命令之前设置它,如下所示。
然后,您可以使用
process.env
访问它,正如您已经指定的那样。Right now, when you run the following command, it is setting an argument for Node.js (your
index.js
file).You can access this using the code below. It will simply return the value the first value passed in.
You need to get the 2nd index, as the first 2 are just command line ones.
If you want to pass an environment variable, you need to set it before running the command, as so.
You can then access it with
process.env
, as you have already specified.