📜  以独立于平台的方式在 Node.js 中设置环境变量

📅  最后修改于: 2022-05-13 01:56:44.432000             🧑  作者: Mango

以独立于平台的方式在 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 文件设置自定义路径等。