Skip to content

如何在 Node.js 中读取环境变量

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

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

bash
USER_ID=239482 USER_KEY=foobar node app.js

这会将用户 USER_ID 作为 239482,USER_KEY 作为 foobar 传递。这适用于测试,但是对于生产环境,您可能需要配置一些 bash 脚本来导出变量。

注意

process 不需要 "require",它会自动可用。

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

javascript
process.env.USER_ID // "239482"
process.env.USER_KEY // "foobar"

您可以以同样的方式访问您设置的任何自定义环境变量。Node.js 20 引入了对 .env 文件 的实验性支持。

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

bash
.env 文件
PORT=3000

在你的 js 文件中

javascript
process.env.PORT // 3000

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

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

此命令加载 .env 文件中的所有环境变量,使它们在 process.env 上可供应用程序使用。此外,您可以传递多个 --env-file 参数。后续文件会覆盖先前文件中定义的预先存在的变量。

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

注意

如果在环境和文件中定义了相同的变量,则来自环境的值优先。