使用config来管理配置文件
https://github.com/lorenwest/node-config
下面是一个比较简单的weixin公众号api配置的实例
执行命令:
npm install --save config
touch config/default.json
配置config/default.json内容
"wx": {
"app_id": "wx04014b02a0",
"app_secret": "cc4c224b5018370cf6ffc95",
"wx_menu": {
"button": [
{
"name": "xxxxx",
"sub_button": [
{
"type": "view",
"name": "xxxxx",
"url": "http://www.xxxxx.com/"
},
实际调用代码
var API = require('wechat-api');
var config = require('config');
var menu_config = config.get('wx.wx_menu');
var app_id = config.get('wx.app_id');
var app_secret = config.get('wx.app_secret');
var api = new API(app_id, app_secret);
//测试
function app(){
api.createMenu(menu_config, function(err, result){
console.log(result);
});
}
module.exports = app;
上面是比较常见的,还有像数据库配置啊等等
最佳实践应该是
- 敏感信息放到环境变量里
- 不敏感的配置信息放到config.json里
更好的一点是config支持各种模式
- production
- developmeng
- test
- staging
比如production模式下,config目录下创建config/production.json就可以了,真是太方便了。
注意json要格式化,最好的办法是
[sudo] npm install -g je
je
把json放里面格式化去
15 回复
试试 config-lite,config-lite 比 config 的优势在于:
- 支持冒泡查找配置文件目录,而且不止
config
- 去除了个人认为鸡肋的
.get()
.has()
… - 只有 17 行代码…
@nqdy666 由于动态语言表达很简短,所以都倾向于在配置里面直接用该编程语言来配置,也经常融入逻辑代码在里面。
我并不认为配置就不应该有逻辑,把配置与实际的应用解耦不代表着配置就不能有逻辑,只要这部分逻辑与应用是松耦合的就好了。