我有一个config.js,它具有我所有的变量设置。基于环境的express/node应用程序覆盖config.js变量
我想创建一个config.global.js并让config.production.js覆盖其中的一些,而config.development.js覆盖其中的一些。
下面是一个例子config.development.js:
var config = {};
config.env = 'development';
config.hostname = 'example.dev';
config.appname = 'Example.com';
config.site_url = 'http://example.dev:8080';
module.exports = config;
我想我可以做到这一点的config.development.js(和config.production.js)覆盖:
var config = require('config.global.js');
config.env = 'development';
config.hostname = 'example.dev';
config.appname = 'Example.com';
config.site_url = 'http://example.dev:8080';
module.exports = config;
然后在app.js,我可以这样做:
var cfg = require('config.' + (process.ENV.APP_ENV || 'development') + '.js');
app.set('domain', cfg.hostname);
还有其他的方法来定义应用程序配置变量?
通常环境变量是'NODE_ENV'。除此之外,这似乎很好。另外,如果变量全部为大写,并且你处于一个case-in()灵敏操作系统中(Mac OS vs linux),那么我会使用'lowercase()'变量来表示变量。 –
哪个变量你会小写? NODE_ENV? – chovy
'process.ENV.NODE_ENV.lowercase()'。顺便说一句,如果我记得正确表达有一些帮助环境变量。 –