繁体   English   中英

nodejs 如何读取命令行中设置的环境变量?

[英]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.jsexport 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM