![](/img/trans.png)
[英]How can I set environment variables in my Javascript file rather than the command line?
[英]How does nodejs read environment variables set in command line?
我想问一个愚蠢的问题,但我已经用谷歌搜索了一段时间,找不到满意的答案。 所以也没有这样的讨论,只有如何在 OS X 中将 NODE_ENV 设置为生产/开发,以及如何在 Windows 上设置 NODE_ENV=production?
要在一行中一个接一个地运行命令,我们通常通过以下方式加入它们;
( 或&&
)
所以我假设我应该运行这样的命令PORT=3000 ; node server.js
PORT=3000 ; node server.js
或export PORT=3000; node server.js
export PORT=3000; node server.js
,就像PORT=3000 ; echo $PORT
PORT=3000 ; echo $PORT
但是我们只是在PORT=3000 node server.js
(没有;
或&&
)之间放置一个空格,然后将 PORT 读入process.env.PORT.
shell如何让nodejs获取环境变量? 如果有人能显示 nodejs 代码会更好。
----- 更新------
我对这个 shell 语法感到困惑的原因(根据我有限的知识)是我认为 Unix 命令行的一般格式是
command options(s) filename(s)
中间的空格用于将命令与选项和文件名分开。 那么如何使用它来分隔 2 个命令呢?
我检查了 nodejs 文档并找到了答案https://nodejs.org/api/process.html#process_process_env
所以它是environment ,而不是 2 个单独的命令,
Bourne 风格的 shell 支持语法
NAME=value command
仅在执行命令的进程范围内创建环境变量定义。
或者如bash 手册3.7.4 所述。
对于 python ,它是os.environ['NAME']
这也是它在 Windows 上不起作用的原因: 如何在 Windows 上设置 NODE_ENV=production?
Windows 用户的注释,作为 daw "set NODE_ENV=production && " 的注释,向变量添加了尾随空格,并且不要使用单/双引号。
我觉得很尴尬,我几乎想删除我的问题。 我把它留在这里以防其他人也有这个疑问。 或者其他人可以进一步解释环境或节点如何将其读入 process.env 对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.