node.jsでWebAppつくるときの設定ファイル

よくWebAppつくるときはconfigとconfig.local的なのを用意しといて、configは全部の環境共通で使う設定を書いておいて、config.localのほうは環境に依存する設定を書いとく。で、configの設定にconfig.localを上書きしてマージする。config.localのほうは.gitignoreとかに書いといてコミットはしない、という方法をよくやってる。環境に依存する設定ってのは例えばDBの接続の設定とか。

node.jsでやるのはこんな感じかな。

// config.js
var _ = require('underscore')._
  , localconf = require('./config.local');

module.exports = _.extend({
  foo: 'bar',
  hoge: 'fuga'
}, localconf);
// config.local.js
module.exports = {
  foo: 'baz',
};

アプリのほうではこんな感じでconfigを使う

// app.js
var config = require('./config');

console.log(config.foo); // baz
console.log(config.hoge); // fuga

フレームワークに同じことやってくれるconfigLoader的なのがあるのが一番いいけど。