一直在研究几个Node应用程序,并且一直在寻找一种存储与部署相关的设置的好模式。有没有什么成熟的方案可以推荐呢。
您可以从Node v0.5.x请求JSON文件
config.json:
{
"username" : "root",
"password" : "foot"
}
app.js:
var config = require('./config.json');
log_in(config.username, config.password);
我用package.json我的包和config.js我的配置,看起来像这样:
var config = {};
config.twitter = {};
config.redis = {};
config.web = {};
config.default_stuff = ['red','green','blue','apple','yellow','orange','politics'];
config.twitter.user_name = process.env.TWITTER_USER || 'username';
config.twitter.password= process.env.TWITTER_PASSWORD || 'password';
config.redis.uri = process.env.DUOSTACK_DB_REDIS;
config.redis.host = 'hostname';
config.redis.port = 6379;
config.web.port = process.env.WEB_PORT || 9980;
module.exports = config;
我从我的项目加载配置:
var config = require('./config');
然后我可以访问我的东西config.db_host,config.db_port等等......这让我既可以使用硬编码参数,或者存储在环境变量参数,如果我不希望将密码存储在源控制做。
我也生成一个package.json并插入一个依赖项部分:
"dependencies": {
"cradle": "0.5.5",
"jade": "0.10.4",
"redis": "0.5.11",
"socket.io": "0.6.16",
"twitter-node": "0.0.2",
"express": "2.2.0"
}
当我将项目克隆到本地机器时,我运行npm install安装包。更多信息在这里。
该项目存储在GitHub中,并为我的生产服务器添加了遥控器。