标题: http://zetcode.com/javascript/nodeconfig/

Node-config 教程展示了如何使用 node-config 模块为 Node 应用创建配置文件。

Node-config

Node-config 创建用于应用部署的配置文件。

Node-config 允许我们定义一组默认参数,并将它们扩展为不同的部署环境(开发,质量保证,登台,生产等)。

配置文件位于默认的config目录中。 可以使用NODE_CONFIG_DIR环境变量覆盖该位置。 NODE_ENV环境变量包含我们应用的部署环境的名称; 默认为development

Node-config 支持各种配置文件格式,包括 JSON,YAML,属性或 XML。 默认配置文件为default.json(或default.yamldefault.xml)。 如果我们使用生产部署,那么将从production.json加载配置。

安装 Node-config

首先,我们安装node-config

  1. $ node -v
  2. v11.5.0

我们使用 Node 版本 11.5.0。

  1. $ npm init -y

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

  1. $ npm i config

我们使用nmp i config安装 node-config。

  1. $ npm i js-yaml

此外,我们安装了js-yaml以支持 YAML。

Node-config 示例

以下示例使用config包检索配置数据。

config/default.json

  1. {
  2. "app": {
  3. "port": 3000
  4. },
  5. "db": {
  6. "host": "localhost",
  7. "port": 27017,
  8. "name": "ydb"
  9. }
  10. }

我们在config目录中有default.json

simple.js

  1. const config = require('config');
  2. let appPort = config.get('app.port');
  3. console.log(`Application port: ${appPort}`);
  4. let dbHost = config.get('db.host');
  5. console.log(`Database host: ${dbHost}`);
  6. let dbPort = config.get('db.port');
  7. console.log(`Database port: ${dbPort}`);
  8. let dbName = config.get('db.name');
  9. console.log(`Database name: ${dbName}`);
  10. console.log('NODE_ENV: ' + config.util.getEnv('NODE_ENV'));

我们加载config包,并使用config.get()函数获取值。 默认部署类型在NODE_ENV中指定。

  1. $ node simple.js
  2. Application port: 3000
  3. Database host: localhost
  4. Database port: 27017
  5. Database name: ydb
  6. NODE_ENV: development

这是输出。

Node-config 示例 II

我们将配置文件更改为 YAML 并设置生产部署环境。

config/default.yaml

  1. app:
  2. port: 3000
  3. db:
  4. host: localhost
  5. port: 27017
  6. name: ydb

这是default.yaml文件。

config/production.yaml

  1. app:
  2. port: 3300
  3. db:
  4. host: localhost
  5. port: 27017
  6. name: mydb

这是production.yaml文件。

simple.js

  1. const config = require('config');
  2. let appPort = config.get('app.port');
  3. console.log(`Application port: ${appPort}`);
  4. ...

simple.js文件是相同的。

  1. $ node simple.js
  2. Application port: 3000
  3. Database host: localhost
  4. Database port: 27017
  5. Database name: ydb
  6. NODE_ENV: development

这是默认环境的输出。 从default.yaml加载配置。

  1. $ set NODE_ENV=production
  2. $ node simple.js
  3. Application port: 3300
  4. Database host: localhost
  5. Database port: 27017
  6. Database name: mydb
  7. NODE_ENV: production

我们使用set命令更改NODE_ENV变量。 (在 Linux 上使用export。)现在,从production.yaml文件加载配置数据。

在本教程中,我们使用node-config包为 Node.js 应用创建配置文件。

您可能也对以下相关教程感兴趣: Node.js 教程。 列出所有 JavaScript 教程