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

グローバル プロセス オブジェクトにアタッチするだけです。

app.js:

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

アプリの他の場所

console.log(process.config);

はい、どこでも上書きされる可能性があるという点で少し危険ですが、それでも非常に単純なアプローチです。

于 2013-02-13T22:13:19.280 に答える