与Rails不同,似乎没有一种可接受的方式在Node.js中加载特定于环境的配置文件。
目前我正在使用以下内容:
config/development.js
和config/production.js
:
module.exports = {
'db': 'mongodb://127.0.0.1/example_dev',
'port': 3002
};
在app.js
文件的顶部跟随以下内容:
var config = require('./config/' + process.env.NODE_ENV + '.js');
这种模式效果很好,但它迫使我将此配置文件传递给任何需要它的模块。这有点笨拙,例如:
var routes = require('./routes')(config);
..并在routes/index.js
:
modules.export = function(config) {
this.index = function...
this.show = function...
};
Etc等。在处理应该是全局的东西时,模块模式似乎非常笨重,比如配置设置。我可以在每个需要它的文件的顶部要求配置文件,但这似乎也不理想。
是否有人拥有包含配置文件并使其全局可用的最佳做法?
答案 0 :(得分:0)
您可以将它附加到全局流程对象:
<强> app.js:强>
var config = require('./config/' + process.env.NODE_ENV + '.js');
process.config = config;
您应用中的其他地方
console.log(process.config);
是的,它有点危险,因为它可以在任何地方被覆盖,但它仍然是一个非常简单的方法。