web-dev-qa-db-ja.com

構成ファイルのModule.exportsとプレーンjson

Node.jsで構成ファイルを作成する方法は複数あります。 1つはjsファイルでmodule.exportsを使用し、もう1つはプレーンなjsonオブジェクトを使用するだけです。

// config1.js
module.exports = {
  config_1: "value 1",
  config_2: "value 2"
}
// config2.json
{
  "config_1": "value 1",
  "config_2": "value 2"
}

構成ファイルでmodule.exportsを使用する利点はありますか?違いは何ですか?

20
Nam Nguyen

javascript CommonJSモジュール

  • コメント
  • 条件付き
  • ループなどをデフォルトに追加します
  • nODE_ENVまたは同様のものに基づいて構成を変更するコード
  • sSLキー、API資格情報などの外部ファイルを探すコード
  • フォールバックとデフォルトを設定するのが簡単

JSONファイル

  • 外部ツールで簡単に解析および更新できます
  • ほとんどすべてのプログラミング言語と互換性があります
  • 実行せずにロードできる純粋なデータ
  • きれいに印刷しやすい
  • JSONは基本として開始することができ、CommonJSモジュールについて上記で説明したすべてのコード項目は、config.jsonを開始点として読み取るconfig.jsモジュールに置くことができます。

そのため、便宜上、いつもcommonjsモジュールから始めますが、その中のロジックはシンプルにしてください。 config.jsにバグがあり、テストが必要な場合、おそらく複雑すぎます。接吻。他の事柄が自分の構成で突っ込みたいと思っているという事実がわかっている場合は、JSONファイルを使用します。

24
Peter Lyons

@ jonathan-ongのおかげで、config.js(JSONファイルではない)は期待どおりに動作し、コメントを追加できるように見えます。

module.exports = {

  // Development Environment

  development: {
    database: {
      Host: '127.0.0.1',
      login: 'dev',
      password: 'dev'
    }
  },

  // Production Environment

  production: {
    database: {
      Host: '127.0.0.1',
      login: 'prod',
      password: 'prod'
    }
  }
};
11
Nam Nguyen

@Peter Lyonsが述べたように、jsファイルには独自の特典があります。ただし、APIキーなどの外部リソースにアクセスする必要がない場合は、設定ファイルに[〜#〜] json [〜#〜]を使用します。

単純な理由は構成ファイルに変更を加えるためだけにコードに触れる必要はありません。 APIを作成して、これらのjsonファイルを編集し、構成のキーと値のペアを追加、更新、または削除できます。 APIを使用して、別の環境用にまったく新しい設定ファイルを追加することもできます。

そして、設定モジュールを使用してこれらの設定を使用します

0
TGW