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
运行这个配置,dbConfig
的 port
和 dbName
元素将来自于 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
- npm 模块笔记(一): config
- Node.js学习笔记(9、模块管理器npm)
- Nodejs 模块 与 npm 包管理工具(笔记1)
- npm 模块笔记(二):xls-to-json
- 【Node.js学习笔记1--模块 npm】
- npm模块安装机制学习笔记
- OpenWRT添加模块(一)Makefile和Config.in
- OpenWRT添加模块(一)Makefile和Config.in
- OpenWRT添加模块(一)Makefile和Config.in
- OpenWRT添加模块(一)Makefile和Config.in
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 笔记(一)nodejs npm express 的安装
- debug简单指令学习
- 华为面试总结
- CentOS 配置VNC
- 预编译文件信息以及iPhone的尺寸
- 管道和重定向
- npm 模块笔记(一): config
- Apache Thrift - java开发详解
- su root 和su - root 的区别
- 为什么 goroutine 的栈内存无穷大
- MyBatis整体预览(二)(关于自己开发插件与mybatis 的整合)
- Java开发中的23种设计模式详解_后续2_行为型模式
- 链表求和
- 301、404、200、304等HTTP状态
- Eclipse无法启动调试:Cannot connect to VM