まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

node.jsで常にキャッシュなしでjsonファイルを読み込む方法

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

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

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

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

requireはjsonの内容が古いまま

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

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

fs.readFileSyncを使う

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

fs.readFileSyncでJSONにする方法は、こちら。

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

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

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