Expressで定数を定義する

config.jsonを作成して定数を設定

jsonファイルに定数を書く

定数の定義

Express3.10.5で設定ファイルを作成し、json形式のファイルにサイト全体で利用する定数を書いておく。

config.jsonを下のよう定義した。

{
    "site": "Web Engineer Blog",
    "url": "http://dim5.net/"
}

定数の利用

モジュールを読み込むようにconfig.jsonをrequireした後、オブジェクトデータにアクセスする方法でデータを取得することができる。

var conf = require('./config.json');
console.log(conf.site);

システム構成によって取得する定数を分ける

開発環境と本番環境で取得するデータを分離してみる。設定ファイル内に開発環境用の定数を定義する。

{
"development": {
    "site": "Web Engineer Blog Dev",
    "url": "http://dev.dim5.net/"
},
"production": {
    "site": "Web Engineer Blog",
    "url": "http://dim5.net/"
}
}

config.jsonの読み込みは以下のように変更する。

var conf = require('./config.json')[app.get('env')];

app.get(‘env’)で取得した値に応じて、利用する定数一覧を切り替えることが出来る。app.get(‘env’)で本番と開発環境を分ける方法は、Node.jsで開発環境とプロダクション環境の制御のエントリーを参照。

テンプレートエンジンに定数値を渡す

jade(テンプレートエンジン)に定数値を渡して表示するサンプルは以下のようになる。

var conf = require('./config.json')[app.get('env')];

app.set('view engine', 'jade');
app.set('views', './views');

app.get('/', function(req, res) {
  res.render('index', {site:conf.site, url:conf.url});
});

renderメソッドでテンプレートファイルに定数の値を渡している。テンプレート側では以下のように定数値にアクセスする。

html
  head
    title Web Engineer Blog
  body Web Engineer Blog Express Configuration Sample
    h1 #{site}
    b #{url}

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Expressで定数を定義するの記事にコメントを投稿