在Node.js中使用特定于环境的配置文件

时间:2013-02-13 20:25:29

标签: node.js

与Rails不同,似乎没有一种可接受的方式在Node.js中加载特定于环境的配置文件。

目前我正在使用以下内容:

config/development.jsconfig/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等。在处理应该是全局的东西时,模块模式似乎非常笨重,比如配置设置。我可以在每个需要它的文件的顶部要求配置文件,但这似乎也不理想。

是否有人拥有包含配置文件并使其全局可用的最佳做法?

1 个答案:

答案 0 :(得分:0)

您可以将它附加到全局流程对象:

<强> app.js:

var config = require('./config/' + process.env.NODE_ENV + '.js');
process.config = config;

您应用中的其他地方

console.log(process.config);

是的,它有点危险,因为它可以在任何地方被覆盖,但它仍然是一个非常简单的方法。