如何从 Node.js 读取环境变量
Node.js 的 process
核心模块提供了 env
属性,该属性托管了进程启动时设置的所有环境变量。
以下代码运行 app.js
并设置 USER_ID
和 USER_KEY
。
USER_ID=239482 USER_KEY=foobar node app.js
这将传递用户 USER_ID
为 239482 和 USER_KEY
为 foobar。 这适用于测试,但对于生产环境,您可能需要配置一些 bash 脚本来导出变量。
注意:
process
不需要导入,它是 Node.js 中的一个全局对象。
这是一个访问 USER_ID
和 USER_KEY
环境变量的示例,我们在上面的代码中设置了这些变量。
process.env.USER_ID; // "239482"
process.env.USER_KEY; // "foobar"
以同样的方式,您可以访问您设置的任何自定义环境变量。
Node.js 20 引入了 实验性 的 对 .env 文件的支持。
现在,您可以使用 --env-file
标志来指定在运行 Node.js 应用程序时的环境变量文件。 这是一个 .env
文件的示例,以及如何使用 process.env
访问其变量。
# .env file
PORT=3000
在你的 js 文件中
process.env.PORT; // "3000"
运行 app.js
文件,其中环境变量设置在 .env
文件中。
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