0

与 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...
};

等等等等。在处理应该是全局的东西时,模块模式似乎很笨拙,比如配置设置。我也可以在需要它的每个文件的顶部都需要配置文件,但这似乎也不理想。

有没有人有包含配置文件并使其全球可用的最佳实践?

4

1 回答 1

0

您可以将其附加到全局进程对象:

应用程序.js:

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

您应用中的其他任何地方

console.log(process.config);

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

于 2013-02-13T22:13:19.280 回答