在Express应用程序中处理不同环境的配置的最佳方法是什么?
我应该在/.config中放置{development,production,testing} .json并根据process.env.NODE_ENV加载适当的一个吗?就像是...
var env = process.env.NODE_ENV || 'development';
var config = require('./config/' + env + ".json");
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?
我通常做过这样的事情:
文件结构:
config/
config.js
env/
development.js
test.js
production.js
Run Code Online (Sandbox Code Playgroud)
然后在config.js文件存储内部通用配置东西,以及加载相应的环境配置:
// main config.js file
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
// load the config file for the current environment
var config = require('./env/' + process.env.NODE_ENV);
// extend config with universal config data
config.someEnvAgnosticSetting = true;
// export config
module.exports = config;
Run Code Online (Sandbox Code Playgroud)
这使您可以轻松地分离出特定于环境的配置,同时允许任何需要配置的模块只需要根配置文件.
例如,在您的server.js文件中:
// require config, not worrying about what environment is being loaded
var config = require('./config/config');
// use config data
app.listen(config.port);
Run Code Online (Sandbox Code Playgroud)
编辑:顺便说一句,我没有采用这种方法 - 对于节点应用程序(或者一般的网络应用程序来说,它是一个非常常见的方法,但它恰好在节点中你需要自己设置).查看mean.js示例应用程序,了解使用此模式的更深入的示例.
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |