JSON形式の設定ファイルに対する変更をリアルタイムに反映する方法
JSON形式の設定ファイルに変更があったら動的に変更を読み込みたいな
ということで、
var fs = require('fs'); var conf = null; var filepath = '/path/to/file'; // 設定ファイルを再読み込みする関数 // 第二引数で、同期か非同期かを選べる function reload(filepath, sync) { if (sync) { conf = JSON.parse(fs.readFileSync(filepath, 'utf8')); } else { fs.readFile(filepath, 'utf8', function(err, data) { if (err) { throw err; } conf = JSON.parse(data); }) } } // 設定ファイルを監視するロジック // watchFileして、更新日時が新しかったら再読み込みする fs.watchFile(filepath, function(curr, prev) { if (curr.mtime > prev.mtime) { reload(filepath); } });
デバッグレベルを切り替えてみたり、上限や下限値を変更したりと
アプリを再起動するまでも無い変更には便利かと