node-config で環境設定ファイルを利用する

2020/08/15

node-config とは

node-config は Node.js で設定ファイル(config)を扱うモジュールです。

設定ファイルを JSON、YAML などの形式で記述して、プログラム上でオブジェクトとして利用できます。

環境変数

process.env でサーバの環境変数を取得することができます。Node.js の本番、開発などの環境変数は NODE_ENV を利用しますが、デフォルトは何も設定されていません。


process.env.NODE_ENV

npm インストール


$ npm install config

ファイル構成


プロジェクト
    |- config + default.json
              |- development.json
    |- node_modules/
    |- package-lock.json
    |- package.json
    |- index.js

設定ファイルの作成

JSON 形式でサーバ設定を記述します。

default.json


{
   "server": {
      "host": "127.0.0.1",
      "port": 3000
   }
}

development.json


{
   "test": 1
}

設定ファイルの読み込み

index.js


const config = require('config');
config.env = process.env.NODE_ENV || 'development';

console.log(config.server.host);
console.log(config.server.port);
console.log(config.test);

NODE_ENV を指定してファイルを実行する

NODE_ENV をターミナルで設定すればそのまま node コマンドで実行できます。


$ export NODE_ENV=development 
$ node app.js

明示的に NODE_ENV=develpment でもファイルを実行できます。


$ NODE_ENV=development node app.js

その他プログラムで環境変数の設定や「cross-env」モジュールを利用することもできます。

Mac に minikube をインストール
途中から .gitignore に追加する
Larevel 6.x から Laravel 8.x にバージョンアップ
Composer で Allowed memory size (メモリ不足)エラー
Blade でカスタムクラスを利用する
git push git pull にブランチ指定せずに実行する
git pull や git push できなくなったとき
Docker のコンテナからホストOS に接続
Mac で ローカル IP アドレス(ipv4)のみを表示する
ホストOS から Docker の MySQLコンテナに接続
caching_sha2_password のエラー
node-config で環境設定ファイルを利用する
rootパスワードを初期化(再設定)する
Git から clone したときのエラー対処
Mac に MySQL をインストール
Mac に PostgreSQL をインストール
Laravel 環境構築 - Mac ネイティブ編
Firebase 入門 - Firebase とは
Firebase 入門 - CLI インストールとデータベースの設定
AWS 無料枠(t2.micro)で容量とメモリエラー
Cloud9 を起動する -初心者編-
gcloud で GCEインスタンスを起動してみる
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel7 リリース
v-html でHTML表示する
Laravel で Nuxt.js を使ってみる(Docker環境)
Laravel で Vue コンポーネントを使う
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移