Node.js + PostgreSQLを使ってアプリケーションを作る(3) 設定ファイルの追加
目次
3, 設定ファイルの追加 <-今回
今回やること
設定ファイルを追加し、環境によって設定を切り替えられるようにする
手順
-1, アプリケーションディレクトリにconfigディレクトリを追加し、その中にindex.jsを追加する
$ mkdir config $ touch config/index.js
-2, config/index.jsを以下のように編集する
'use strict'; const common_config = {}; const config = { development: { env: 'development', port: 3000, common: common_config }, production: { env: 'production', port: 3000, common: common_config }, }; module.exports = function(env) { return config[env || process.argv[2] || 'development']; };
config/index.jsでは、設定オブジェクトを返す関数をモジュールとして登録しています。 別の箇所からrequireで呼び出し、引数に環境名を与えることで、それぞれの環境に応じた設定を使う事ができます。
-3, app.jsを設定ファイルを使うように変更する
app.jsを以下のように書き換えます。
var express = require('express'); var app = express(); // config const config = require('./config')(process.env.ENV); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(config.port, function () { console.log('Example app listening on port ' + config.port); });
config/index.jsで、 const config = require('./config')(process.env.ENV); を追加し、設定モジュールを呼び出しています。 このとき環境変数にENVを登録すればそれに応じた設定が返ってきます。また、ENVが登録されていない場合はdevelopmentの設定を返すようにconfig/index.jsでしてあります。現在は開発環境で作業を行っていますので、特に環境変数を登録しません。 この状態で
$ ./node_modules/node-dev/bin/node-dev app.js
でアプリケーションを開始すると、
Example app listening on port 3000
と表示されます。
ここまでのコードは
に公開してあります。