npm 模块笔记(一): config

写在前面:
最近开始开始学习 nodejs,将通过翻译 NPM 中的模块的方式来加强自己的学习,如有翻译不到位的地方,请大家多多指教。

该模块 Git 地址:https://github.com/lorenwest/node-config

config – 配置你的Node.js 应用程序

简介(Introduction)

Node-config 管理你应用程序部署的层次结构(hierarchical configurations)。

它允许你定义一组默认参数,并可以根据不同的部署环境来进行扩展(开发,qa质量评价,staging,产品等等)。
所有配置项存储在应用程序的配置文件中,配置项可以被重写,也可以通过environment variables, command line parameters, 或者 external sources来进行扩展。

这给了你的应用程序一个一致的配置接口,通过使用 node-config 来共享逐渐增长的npm 模块列表


项目指南(Project Guidelines)

  • 简单 – 入门快
  • 强大 – multi-node 企业级部署
  • 灵活 – 支持多种不同格式的配置文件
  • 轻量级 – 极少的文件和内存占用
  • 可预言性 – 对开发者来说,很好的模块和程序测试基础

快速入门(Quick Start)

下面这个示例使用 JSON 格式,你也可以使用其他文件格式进行配置。

在程序目录下进行安装,并编辑默认配置文件。

$ npm install config
$ mkdir config
$ vi config/default.json
{
  // Customer module configs
  "Customer": {
    "dbConfig": {
      "host": "localhost",
      "port": 5984,
      "dbName": "customers"
    },
    "credit": {
      "initialLimit": 100,
      // Set low for development
      "initialDays": 1
    }
  }
}

重写配置文件进行产品部署:

$ vi config/production.json
{
  "Customer": {
    "dbConfig": {
      "host": "prod-db-server"
    },
    "credit": {
      "initialDays": 30
    }
  }
}

使用配置:

var config = require('config');
//...
var dbConfig = config.get('Customer.dbConfig');
db.connect(dbConfig, ...);

if (config.has('optionalFeature.detail')) {
  var detail = config.get('optionalFeature.detail');
  //...
}

键未定义时,config.get() 会抛出异常,以帮助捕获拼写错误和缺失值的错误。当配置值已定义时,使用 config.has() 进行测试。

开启服务:

$ export NODE_ENV=production
$ node my-app.js

运行这个配置,dbConfigportdbName 元素将来自于 default.json 文件,而 host 元素将会来自于重写的 production.json 文件。


更多文章(Articles)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值