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.yaml
和default.xml
)。 如果我们使用生产部署,那么将从production.json
加载配置。
安装 Node-config
首先,我们安装node-config
。
$ node -v
v11.5.0
我们使用 Node 版本 11.5.0。
$ npm init -y
我们启动一个新的 Node 应用。
$ npm i config
我们使用nmp i config
安装 node-config。
$ npm i js-yaml
此外,我们安装了js-yaml
以支持 YAML。
Node-config 示例
以下示例使用config
包检索配置数据。
config/default.json
{
"app": {
"port": 3000
},
"db": {
"host": "localhost",
"port": 27017,
"name": "ydb"
}
}
我们在config
目录中有default.json
。
simple.js
const config = require('config');
let appPort = config.get('app.port');
console.log(`Application port: ${appPort}`);
let dbHost = config.get('db.host');
console.log(`Database host: ${dbHost}`);
let dbPort = config.get('db.port');
console.log(`Database port: ${dbPort}`);
let dbName = config.get('db.name');
console.log(`Database name: ${dbName}`);
console.log('NODE_ENV: ' + config.util.getEnv('NODE_ENV'));
我们加载config
包,并使用config.get()
函数获取值。 默认部署类型在NODE_ENV
中指定。
$ node simple.js
Application port: 3000
Database host: localhost
Database port: 27017
Database name: ydb
NODE_ENV: development
这是输出。
Node-config 示例 II
我们将配置文件更改为 YAML 并设置生产部署环境。
config/default.yaml
app:
port: 3000
db:
host: localhost
port: 27017
name: ydb
这是default.yaml
文件。
config/production.yaml
app:
port: 3300
db:
host: localhost
port: 27017
name: mydb
这是production.yaml
文件。
simple.js
const config = require('config');
let appPort = config.get('app.port');
console.log(`Application port: ${appPort}`);
...
simple.js
文件是相同的。
$ node simple.js
Application port: 3000
Database host: localhost
Database port: 27017
Database name: ydb
NODE_ENV: development
这是默认环境的输出。 从default.yaml
加载配置。
$ set NODE_ENV=production
$ node simple.js
Application port: 3300
Database host: localhost
Database port: 27017
Database name: mydb
NODE_ENV: production
我们使用set
命令更改NODE_ENV
变量。 (在 Linux 上使用export
。)现在,从production.yaml
文件加载配置数据。
在本教程中,我们使用node-config
包为 Node.js 应用创建配置文件。
您可能也对以下相关教程感兴趣: Node.js 教程。 列出所有 JavaScript 教程。