如何在 Node.js 和 npm 的 DotEnv 文件中使用 Node 环境变量

环境变量是在程序之外设置的变量,通常通过云服务提供商或操作系统设置。

在 Node 中,环境变量是一种很好的方式,可以安全、方便地配置那些不经常改变的东西,如 URL、认证密钥和密码。

如何创建环境变量

Node 开箱即支持环境变量,并且可以通过 env 对象(它是 process 全局对象的一个属性)访问。

要看到这一点,你可以在 Node REPL 中通过直接向 process.env 对象添加一个变量来创建你自己的环境变量。

例如,要创建一个环境变量来存储我行李箱上的密码,我可以这样分配变量:process.env.LUGGAGE_COMBO=“12345”

(根据惯例,环境变量一般用大写字母书写)。

虽然这是一个很好的实验,但你不会在一个应用程序中这样使用 Node REPL。要在你的 Node 应用程序中创建环境变量,你可能想使用像 DotEnv 这样的包。

如何使用 DotEnv

DotEnv 是一个轻量级的 npm 包,它可以从 .env 文件中自动加载环境变量到 process.env 对象。

要使用 DotEnv,首先使用命令安装它:npm i dotenv。然后在你的应用程序中,像这样要求和配置这个包:require('dotenv').config()

请注意,一些包,如 Create React App 已经包括 DotEnv,而云服务提供商可能有不同的设置环境变量的方法。因此,在你遵循本文的任何建议之前,请确保检查你正在使用的任何包或供应商的文档。

如何创建一个 .env 文件

在你安装并配置了 DotEnv 之后,在文件结构的顶层创建一个名为 .env 的文件,这是你创建所有环境变量的地方,以 NAME=value 格式书写。例如,你可以像这样设置一个端口变量为 3000:PORT=3000

你可以在 .env 文件中声明多个变量。例如,你可以这样设置与数据库有关的环境变量:

DB_HOST=localhost
DB_USER=admin
DB_PASSWORD=password

没有必要用引号来包裹字符串。DotEnv 会自动为你做这个。

一旦你创建了这个文件,请记住,你不应该把它推送到 GitHub,因为它可能包含敏感数据,如认证密钥和密码。将该文件添加到 .gitignore 中,以避免不小心将其推送到公共仓库。

如何访问环境变量

访问你的变量是非常容易的!它们被附在 process.env 对象上,所以你可以使用 process.env.KEY 模式访问它们。

如果你需要改变任何环境变量的值,你只需要修改 .env 文件。

总结

环境变量将使你的代码更容易维护和更安全。用 Dotenv 来设置它们很容易,并且可以在 Node 中直接使用它们。