原文: http://zetcode.com/javascript/dotenv/

dotenv教程展示了如何使用dotenv模块在 JavaScript 中加载环境变量。

dotenv模块

dotenv是一个零依赖模块,可将环境变量从.env文件加载到process.env中。 将配置存储在与代码分开的环境中是基于十二因子应用方法的。

环境变量

环境变量使我们能够与代码库分开管理应用的配置。 分开的配置使我们的应用更容易在不同的环境中部署。

环境变量是应用外部的变量,它们驻留在运行生产应用的 OS 或容器中。 由于开发大部分是在本地计算机上完成的,因此环境变量可以通过setexport等命令放置到本地环境变量中,或者存储在本地.env文件中。

按照惯例,这些变量都写在大写字母(例如端口)。

存储在环境变量中的配置数据的常见示例包括:

  • HTTP 端口
  • 数据库连接字符串
  • 静态文件的位置
  • 外部服务的端点

绝对不要将.env文件提交到源代码存储库。 我们必须将文件放入.gitignore文件。 (使用 git 时。)

现代编辑器支持.env文件。 例如,code具有 DotENV 扩展名。

dotenv解析规则

以下是一些基本的解析引擎规则:

  • BASIC=basic变为{BASIC: 'basic'}
  • 空行被跳过
  • 注释以#开头
  • 空值变成空字符串; BASIC=变为{BASIC: ''}
  • 内部引用保持不变

现有的环境变量不会被修改; 他们被跳过。

Dotenv 设置

我们将dotenv模块与npm一起安装。

  1. $ node -v
  2. v11.5.0

我们使用 Node 版本 11.5.0。

  1. $ npm init -y

我们启动一个新的 Node 应用。

  1. $ npm i dotenv

我们使用npm i dotenv命令安装dotenv

dotenv简单示例

在第一个示例中,从.env文件中读取配置数据。

.env

  1. HOST = localhost
  2. DATABASE = ydb
  3. PORT = 5432

我们有三个变量:HOSTDATABASEPORT。 我们使用大写字母来遵守命名约定。

simple.js

  1. require('dotenv').config()
  2. const hostname = process.env.HOST;
  3. const database = process.env.DATABASE;
  4. const port = process.env.PORT;
  5. console.log(hostname);
  6. console.log(database);
  7. console.log(port);

在示例中,我们读取了三个变量并将它们打印到控制台。

  1. require('dotenv').config()

我们加载dotenv库,并调用config()的方法,它加载变量进入process.env

  1. const hostname = process.env.HOST;
  2. const database = process.env.DATABASE;
  3. const port = process.env.PORT;

我们从process.env中读取了三个变量。

  1. console.log(hostname);
  2. console.log(database);
  3. console.log(port);

最后,变量被打印到终端。

  1. $ node simple.js
  2. localhost
  3. ydb
  4. 5432

这是输出。

dotenv预加载

我们可以使用--require-r)命令行选项来预加载dotenv。 这样,我们不需要在应用中要求和加载dotenv

.env

  1. HOST = localhost
  2. DATABASE = ydb
  3. PORT = 5432

我们有相同的变量。

preload.js

  1. const hostname = process.env.HOST;
  2. const database = process.env.DATABASE;
  3. const port = process.env.PORT;
  4. const user = process.env.USER;
  5. console.log(hostname);
  6. console.log(database);
  7. console.log(port);
  8. console.log(user);

在此示例中,我们不需要dotenv模块。 另外,我们读取在 OS 环境中设置的变量。

  1. $ set USER=user7
  2. $ node -r dotenv/config preload.js
  3. localhost
  4. ydb
  5. 5432
  6. user7

在 Windows 上,我们使用set定义环境变量。 (在 Linux 上使用export)。 变量打印确定。

在本教程中,我们使用了dotenv模块从.env文件读取环境变量。

您可能也对以下相关教程感兴趣: Moment.js 教程从 JavaScript 中的 URL 读取 JSONNode Sass 教程Lodash 教程 或列出所有 JavaScript 教程