如何从 Node.js 读取环境变量

Node.js 的 process 核心模块提供了 env 属性,该属性包含了进程启动时设置的所有环境变量。

以下代码运行 app.js 并设置了 USER_IDUSER_KEY

USER_ID=239482 USER_KEY=foobar node app.js

这将把 USER_ID 作为 239482USER_KEY 作为 foobar 传入。这适合测试,但对于生产环境,你可能需要配置一些 bash 脚本来导出变量。

注意:process 不需要被导入,它是 Node.js 中的一个全局对象。

这是一个访问我们在上面代码中设置的 USER_IDUSER_KEY 环境变量的示例。

.(..); // "239482"
.(..); // "foobar"

你可以用同样的方式访问你设置的任何自定义环境变量。

Node.js 20 引入了对 .env 文件的实验性支持

现在,你可以在运行 Node.js 应用程序时使用 --env-file 标志来指定一个环境文件。以下是一个 .env 文件示例,以及如何使用 process.env 访问其变量。

# .env file
PORT=3000

在你的 js 文件中

.(..); // "3000"

使用在 .env 文件中设置的环境变量运行 app.js 文件。

node --env-file=.env app.js

此命令会加载 .env 文件中的所有环境变量,使它们在应用程序中通过 process.env 可用。

此外,你还可以传递多个 --env-file 参数。后续文件会覆盖先前文件中定义的已存在变量。

node --env-file=.env --env-file=.development.env app.js

注意:如果同一个变量在环境和文件中都定义了,那么环境中的值会优先。

如果你想可选地从 .env 文件读取,可以使用 --env-file-if-exists 标志来避免在文件不存在时抛出错误。

node --env-file-if-exists=.env app.js
阅读时间
1 分钟
作者
贡献
编辑此页面