以独立于平台的方式在 Node.js 中设置环境变量
环境变量是确保您宝贵的 API 密钥和秘密资料以及自适应代码安全的好方法。但是,在具有不同操作系统的各种机器上工作时,设置环境变量可能有点乏味。在这种情况下,需要一种可移植且特定于项目的方式来使用它们。这是一种使用 Node.js 中著名的 npm 模块配置它们的方法。
步骤 1:安装dotenv npm 包:打开命令 shell,导航到项目的根文件夹并通过以下命令安装 dotenv npm 包:
npm install dotenv
如果你更喜欢纱线,你可以这样做:
yarn add dotenv
第 2 步:在项目的根文件夹中创建一个名为.env的文件,该文件将存储所有环境变量
第 3 步:在项目中需要 dotenv 包
仅在本地设置时需要 dotenv 包:在项目的 starter JS 文件中,通常是 index.js,尽早导入包,使用以下语句:
if(process.env.NODE_ENV !== "production") {
require('dotenv').config();
}
在这里,我们仅在 NODE_ENV 未设置为生产时才导入包,默认情况下从未设置。从而,
评估 undefined !== “production” 即 True,因此包含 dotenv。但是,生产服务器有自己的设置环境变量的方法,因此没有明确需要在已发布的应用程序上使用 dotenv。在生产环境中,将 NODE_ENV 环境变量设置为生产环境,以便不包含 dotenv。例如,Heroku 默认将此变量设置为生产环境,如此处所述,因此我们不必手动执行此操作,请查看您的托管服务提供商的文档以获取更多详细信息。
第 4 步:在 .env 文件中设置环境变量并像普通环境变量一样使用它们:将环境变量的键值对存储在 .env 文件中。以下格式的env文件(没有任何键或值的引号):
KEY = VALUE
例如,您的 .env 文件可能如下所示:
DB_KEY = YOUR_ACTUAL_DATABASE_ACCESS_KEY
SECRET_TOKEN = VALUE_OF_YOUR_SECRET_TOKEN
ADMIN_EMAIL = xyz@abc.com
在您的代码文件中,您可以通过引用它们各自的键来使用这些值,例如,
const my_db_key = process.env.DB_KEY
const adminContactMail = process.env.ADMIN_EMAIL
第 5 步:确保 .env 文件未被 git 跟踪(出于安全原因,如果您使用的是 git)如果项目有 git setup,请打开 .gitignore 文件(如果没有,则创建一个),添加.env如果不存在。这可以防止它被跟踪到公共存储库。如果您不打算在项目中使用 git,则可以跳过此步骤。您可以在任何机器上共享和使用此 .env 文件,而无需花费时间设置环境变量。
注意:还有其他几个选项,例如为 .env 文件设置自定义路径等。