node.jsでjsonファイルを読み込む方法

requireを使う

ググって最初に見つけたのが、requireを使う方法。

node.jsでjsonファイルの読み込み - Qiita

var json = require('./test.json');

これでいいんだと思って進めてたんですが突如はまりました。

requireしたあとのjsonの内容が古いまま

ユニットテスト書いてて、ファイルを削除してるのに、1つ目のテストのjsonオブジェクトが返ってくる。

どうやら、requireはオブジェクトをキャッシュするようだ。この仕組みを理解しておらず、なんでだろうーなんでだろうーって結構はまりました。jsonファイル消してるし、ファイルの内容も更新されてるし。。

もし、更新されたjsonのデータを読み込みたいみたいなときは、 キャッシュを消すか、fs.readFileSyncでデータ読み込んでjsonにする方法使えば解決。

fs.readFileSyncJSONにする方法は、こちら。

javascript - Using Node.JS, how do I read a JSON object into (server) memory? - Stack Overflow

var obj = JSON.parse(fs.readFileSync('filepath', 'utf8'));

いやー、盛大にはまりました。