题 在Node.js中读取环境变量


有没有办法在Node.js代码中读取环境变量?

比如Python的 os.environ['HOME']


1039
2018-02-02 02:54


起源




答案:


process.env.ENV_VARIABLE

哪里 ENV_VARIABLE 是您要访问的变量的名称。

看到 Node.js文档 process.env


1575
2018-02-02 03:14



请注意,这在节点进程及其子进程外部不可见。例如。如果你开火就不会看到它 env 在节点进程运行时的另一个shell窗口中,在节点进程退出后也不在同一个shell中。 - Marko Bonaci
这也适用于分配变量。 process.env.FOO = "foo"; 作品。 - chicks
值得一提的是,这在React应用程序中不起作用。 process.env 因安全原因进行消毒。只有以。开头的变量 REACT_ENV_ 可用。看到: github.com/facebookincubator/create-react-app/blob/master/... - Mark Edington
@MarkEdington我认为应该如此 REACT_APP_ - Mr. 14
@ Mr.14你是对的!它是REACT_APP_而不是REACT_ENV_ - Mark Edington


使用时 Node.js的,您可以通过键检索环境变量 process.env 目的:

例如

var mode   = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'

以下是可以解释的答案 在node.js中设置环境变量


108
2017-10-31 05:42



什么lib需要使用上面的process.env方法? - user_mda
@user_mda process.env 内置于node.js api中。 - Jason Axelson
我只是在process.env上设置我想要的任何内容吗?人们为什么要把它设置在那里,而不是说,node.js需要()编辑的配置对象? - PDN
process.env允许您访问在操作系统级别设置的环境变量。这些可以通过各种方式设置,具体取决于您部署应用程序的位置。例如,我经常使用NODE_ENV = development NODE_PATH = lib node server.js运行本地应用程序。然后process.env.NODE_PATH将返回'lib' - NectarSoft


如果你想使用Node.js程序中生成的字符串密钥,比方说, var v = 'HOME', 您可以使用 process.env[v]

除此以外, process.env.VARNAME 必须在你的程序中硬编码。


45
2017-07-11 23:39





您可以使用 ENV 用于管理每个项目的环境变量的包:

  • 创建一个 .env 在项目目录下的文件,并把你所有的 变量那里。
  • 将此行添加到应用程序条目文件的顶部:
    require('dotenv').config();

完成。现在您可以使用访问环境变量 process.env.ENV_NAME


6
2018-04-02 13:11



dotenv包很有用,但是问题是通过阅读process.env.ENV_VARIABLE来回答的。 dovenv包的全部内容是将文件加载到环境中。 - Robert Patterson
这就是我的观点:从中管理和加载env变量 env 图书馆。 - Huy Vo
您可以使用以非特定于node.js的方式执行相同操作 envdir 效用。 - Chris Johnson