Node.js:config模块

模块地址:https://www.npmjs.com/package/config

简介

读取json配置。

示例

$ mkdir nodejs-code
$ cd nodejs-code

$ npm install config

$ mkdir config
$ touch config/default.json
$ touch config/development.json
$ touch config/production.json
$ touch my-app.js

config/default.json

{
  "Customer": {
    "dbConfig": {
      "host": "localhost",
      "port": 5984,
      "dbName": "customers"
    },
    "credit": {
      "initialLimit": 100,
      "initialDays": 1
    }
  }
}

config/development.json

{
  "Customer": {
    "dbConfig": {
      "host": "dev-db-server"
    },
    "credit": {
      "initialDays": 20
    }
  }
}

config/production.json

{
  "Customer": {
    "dbConfig": {
      "host": "prod-db-server"
    },
    "credit": {
      "initialDays": 30
    }
  }
}

my-app.js

var config = require('config');

var dbConfig = config.get('Customer.dbConfig');
console.log('Customer.dbConfig: ' + dbConfig.toString());

console.log('dbName: ' + dbConfig.get('dbName'));

if (dbConfig.has('host')) {
    var host = dbConfig.get('host');
    console.log('host: ' + host);
}

运行示例

$ export NODE_ENV=
$ node my-app.js
Customer.dbConfig: [object Object]
dbName: customers
host: dev-db-server

$ export NODE_ENV=development
$ node my-app.js
Customer.dbConfig: [object Object]
dbName: customers
host: dev-db-server

$ export NODE_ENV=production
$ node my-app.js
Customer.dbConfig: [object Object]
dbName: customers
host: prod-db-server

$ NODE_ENV=production node my-app.js
Customer.dbConfig: [object Object]
dbName: customers
host: prod-db-server


$ NODE_ENV=product node my-app.js
WARNING: NODE_ENV value of 'product' did not match any deployment config file names.
WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode
Customer.dbConfig: [object Object]
dbName: customers
host: localhost

$ mv config/development.json config/development.json.bak
$ export NODE_ENV=
$ node my-app.js
Customer.dbConfig: [object Object]
dbName: customers
host: localhost

可以看出,如果NODE_ENV为空,使用development.json,如果没有development.json,则使用default.json。 若NODE_ENV不为空,则到config目录中找响应的文件,若文件没找到则使用default.json中的内容。 若在指定的文件中没找到配置项,则去default.json找。

其他

也可以自己写个简单的读取配置的小工具,例如Managing config variables inside a Node.js application

转载于:https://my.oschina.net/letiantian/blog/529091

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值