npm 模块笔记(一): config

来源:互联网 发布:淘宝整套模板 编辑:程序博客网 时间:2024/05/31 19:04

写在前面:
最近开始开始学习 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)

  • Configuration Files
  • Common Usage
  • Environment Variables
  • Reserved Words
  • Command Line Overrides
  • Multiple Node Instances
  • Sub-Module Configuration
  • Configuring from a DB / External Source
  • External Configuration Management Tools
  • Examining Configuration Sources
  • Using Config Utilities
  • Upgrading from Config 0.x
0 0
原创粉丝点击