我有一個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()'。順便說一句,如果我記得正確表達有一些幫助環境變量。 –