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}