Express: 実行環境を分ける

プログラミング
スポンサーリンク




こんにちは、おみです。

本格的なシステム開発をしていると、例えば実行環境(開発、テスト、本番等)ごとにAPIの接続先を切り替えたい場合があります。

手入力でAPIのURLを1つ1つ変えて実行するのも手ではありますが、規模が大きくなるにつれ修正箇所が増えていきますし、何よりヒューマンエラーの原因になるので現実的ではありません。

そこで今回は実行環境を複数作成し、処理を分岐する方法について解説していきたいと思います。

 

スポンサーリンク

環境

node.js: 14.17.6

vscode: 1.61.1

 

やり方

実行環境を作成する

それぞれの実行環境を作成するために、ルートディレクトリ/.vscode/launch.jsonを開き、実行環境の設定情報を記述します。なければ作成します。

 

今回は

  • 開発: development
  • テスト: staging
  • 本番: production

の3つの実行環境を作成します。

 

launch.json

  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "プログラム起動(development)",
      "program": "${workspaceFolder}/app.js",
      "env": {
        "NODE_ENV": "development"
      }
    },
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "プログラム起動(staging)",
      "program": "${workspaceFolder}/app.js",
      "env": {
        "NODE_ENV": "staging"
      }
    },
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "プログラム起動(production)",
      "program": "${workspaceFolder}/app.js",
      "env": {
        "NODE_ENV": "production"
      }
    },
  ]
}

 

各環境で動かしてみる

プログラムを作成し、各環境で動かしてみましょう。

今回は、実行環境ごとに異なる文字列をターミナルに出力するプログラムを作成します。

 

app.js

// 環境変数の定数を読み込み
import {env_dev, env_stg, env_pro} from "./constant_value.js";

// 環境ごとの表示内容を指定するMapを生成
// 例えばここでAPIのURLを記述することで、環境ごとに違うAPIに接続させることができる。
var env_value_map = {
  [env_dev] : "開発環境かりん",
  [env_stg]: "ステージング環境かりん",
  [env_pro]: "本番環境かりん",
}

// ログに環境ごとに指定された内容を出力
console.log(env_value_map[process.env.NODE_ENV]);

 

constant_value.js

// 環境変数の定数を生成
export const env_dev = "development";
export const env_stg = "staging";
export const env_pro = "production";

 

VSCodeで実行する際、左部ツールバー”実行とデバッグ”を開き実行環境を指定することで、それぞれの動きを試してみることができます。

 

例えば”プログラム起動(staging)”を選択すると、ターミナルに”ステージング環境かりん”が出力されます。

 

 

タイトルとURLをコピーしました