ポーカー、プログラミング、もぐ

ポーカーとプログラミングともぐもぐについてのブログ。

Node.js + PostgreSQLを使ってアプリケーションを作る(3) 設定ファイルの追加

目次

1, 環境構築

2, Hello World

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

と表示されます。

ここまでのコードは

github.com

に公開してあります。