-1

私はこのアプローチに間違った練習をしているのかどうかわかりませんが、私は&コレクションパッケージを作成しています(mongodbの結果をモデルとして公開しています)。しかし、モデルでは、hostportpasswordなどの設定があり、モジュールにハードコードするべきではないと思います。モジュール間でアプリケーション設定を共有する

私のアプリには、特定の設定を得るためのapp.configオブジェクトがありますが、モデルモジュールで使用できるようにしたいと思いますが、毎回スクリプトとしてrequire('models/user')(app.config)をモジュールとして使用したくありません。私はユーザモデルが必要です。なぜなら、それはコードの繰り返しにつながるからです。

  • レジストラ

    • app.modelsと呼ばれるオブジェクトを作成し、すべてのモデルを割り当てて、スタートアップモジュール
    • でそれらに設定を渡します。ここでは

      は、私が考えてきたいくつかの解決策があります

    • 短所:requireファイル内のモデルモジュール
  • グローバル設定

    • 任意のモジュールにアクセスすることができるapp.configに連結されたグローバル変数を作成します。

    • 欠点:同じプロセスで複数のアプリケーションを作成することはできません:(

+0

通常、私はグローバル設定に行きますが、「同じプロセスで複数のアプリケーションを作成できません」と言います。私はそれが何を意味するかわからない、あなたは動的な設定をしたいと思いますし、動的にアプリを作成しますか? – Khang

答えて

1

あなたは、独自のファイルに設定を入れて、インポート/各モデルから、それを必要とする可能性がある

。 例えば

models/user中...

const config = require('config') 

...でもどこでもあなたはを設定しています...

app.config = require('config') 
+0

ありがとう、しかし、私の設定オブジェクトは、アプリケーションの起動時に設定する必要のある部分関数です( 'app.config = require( './config')(basedir)') – Albert

+0

どうすれば? – Albert

+1

あなたは 'const config = require( './ config')のようなことをすることができます。 config.basedir = basedir'です。 configを設定した後、モジュールのトップレベルでconfigを使用することが必要であることを確認する必要があります。 – CaseyWebb

関連する問題