node-config は Node.js で設定ファイル(config)を扱うモジュールです。
設定ファイルを JSON、YAML などの形式で記述して、プログラム上でオブジェクトとして利用できます。
process.env でサーバの環境変数を取得することができます。Node.js の本番、開発などの環境変数は NODE_ENV を利用しますが、デフォルトは何も設定されていません。
process.env.NODE_ENV
$ npm install config
プロジェクト
|- config + default.json
|- development.json
|- node_modules/
|- package-lock.json
|- package.json
|- index.js
JSON 形式でサーバ設定を記述します。
{
"server": {
"host": "127.0.0.1",
"port": 3000
}
}
{
"test": 1
}
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 コマンドで実行できます。
$ export NODE_ENV=development
$ node app.js
明示的に NODE_ENV=develpment でもファイルを実行できます。
$ NODE_ENV=development node app.js
その他プログラムで環境変数の設定や「cross-env」モジュールを利用することもできます。