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

时间:2018-02-12 03:08:58

标签: node.js bash shell environment-variables

我想问一个愚蠢的问题,但我已经谷歌搜索了一段时间,并且找不到令人满意的答案。所以也没有这样的讨论,只有How to set NODE_ENV to production/development in OS XHow can I set NODE_ENV=production on Windows?

要在一行中逐个运行命令,我们通常会按;(或&&

加入这些命令

所以我假设我应该像PORT=3000 ; node server.jsexport PORT=3000; node server.js那样运行命令,就像PORT=3000 ; echo $PORT

一样

但我们只是在PORT=3000 node server.js(不含;&&)之间加上空格,并将PORT读入process.env.PORT. shell如何制作nodejs获取环境变量?如果有人可以显示nodejs代码会更好。

-----更新------

我对这个shell语法感到困惑的原因(根据我的有限知识)是我认为Unix命令行的一般格式是

command options(s) filename(s)

中间的空格用于将命令与选项和文件名分开。那么它如何用于分离2个命令呢?

1 个答案:

答案 0 :(得分:0)

我检查了nodejs文档并找到了答案https://nodejs.org/api/process.html#process_process_env

所以它是environ,而不是2个独立的命令,

  

Bourne样式的shell支持语法

       NAME=value command
     

仅在范围内创建环境变量定义   执行命令的进程。

bash manual 3.7.4解释。

这也是它不能在Windows上工作的原因:How can I set NODE_ENV=production on Windows?

对于Windows用户的注释,作为daw"的注释,设置NODE_ENV = production&& "为变量添加尾随空格,不要使用单/双引号。

我感到非常尴尬,我几乎想删除我的问题。我把它放在这里,万一其他人也可能有这个疑问。或者其他人可以进一步解释 environ 或节点如何将其读入process.env对象。