Node.js のコンフィグレーションの作成と保存

Isaac Tony 2022年3月30日
Node.js のコンフィグレーションの作成と保存

構成ファイルの管理は、初心者の開発者にとって Node.js では困難な作業になる可能性があります。構成ファイルの開発と管理を容易にする convicthusksconfig などのライブラリがあるにもかかわらず、それは真実です。

構成ファイルの保存と管理を容易にするベストプラクティスの 1つは、ファイルを保存し、コードに影響を与えることなくファイルを変更できるようにする一元化されたファイルを作成することです。

一元化されたファイルを他の環境に拡張できるようにすることで、再利用性を促進するだけでなく、他の開発者がコードを読むのが楽になります。

Node.js では、構成ファイルは通常、デフォルトの構成ファイルに保存されます。ただし、外部ソースまたは環境変数によってオーバーライドおよび拡張できます。

構成ファイルは、さまざまなファイル形式にすることができます。これらには、.jsonYAML などの一般的なものや、.json5.hjson などの他のものが含まれます。

Node.js で node-config をインストールして構成を作成および保存する

Node-confignpm パッケージであり、さまざまなデプロイメント構成ファイルを作成して保存できます。このパッケージを使用して、開発、本番、またはステージング環境に拡張するデフォルトのパラメーターを定義できます。

npm パッケージマネージャーを使用して、Node-config をインストールおよびセットアップできます。ただし、ここに示すように、最初に単純な Express サーバーを作成してから、アプリケーションのフォルダーに移動する必要があります。

サンプルアプリケーションサーバー

アプリケーションサーバーを配置したら、以下のコマンドを実行して config パッケージをインストールできます。

$ npm install config

上記のコマンドは、以下に示すように、package.json ファイルの依存関係の 1つとして config パッケージを追加します。

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Isaac Tony",
  "license": "MIT",
  "dependencies": {
    "config": "^3.3.7",
    "express": "^4.17.2"
  }
}

以下のアプリケーション構造に示すように、最初に config という名前のフォルダーを作成し、次に default.json という名前のファイルを作成することで、すべてのデフォルト構成ファイルを格納するファイルを作成できます。

アプリの構造

上記のように、Node-config を使用する場合、構成を保存するファイルのタイプを柔軟に選択できますが、デフォルトの形式である .json 形式を使用することを選択しました。

これで、ファイル default.json に、アプリケーションに構成設定を追加できます。default.json ファイルに追加できるいくつかの基本的な設定を次に示します。

{
    "server": {
        "port": 3000
    },
    "db": {
        "host": "localhost",
        "port": 27017,
        "name": "mongodb"
    }
}

以下の index.js ファイルに示すように、config.get 関数を使用して、これらのパラメーターと設定を取得し、アプリケーションで使用できます。

const express = require('express')
const app = express()
 
const config = require('config');
const port = config.get('server.port');
const host = config.get("db.host");
 
 
app.get('/', (req, res) => {
  res.send('Hello World!')
})
 
app.listen(port, host, () => {
  console.log(`The application is listening on ${host}:${port}`)
})

このデフォルトの構成ファイルを配置したら、それぞれの環境の構成ファイルを作成することで、これらの構成設定を本番環境やテストなどに簡単に拡張できます。

また、別の環境固有の構成ファイルのデフォルト構成ファイルで構成変数を繰り返すか、アプリケーションを開始する前に NODE-CONFIG 変数を作成してコマンドラインから構成変数を繰り返すことにより、環境固有のオーバーライドを実行することもできます。

Author: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn