私の node.js アプリは、.json ファイルのディレクトリ ツリーを (再帰的に) 読み取る関数を毎秒実行します。これらのファイルはクライアントから FTP 経由でサーバーにアップロードされ、ノード スクリプトが実行されているフォルダーに配置されます。
私が見つけたもの (少なくとも私が考えていること) は、ノードが .json ファイルを読み取ろうとする前に完全に書き込まれるのを待っていないため、「入力の予期しない終了」エラーがスローされていることです。 . ファイルシステムがファイルを正しく書き込むには数秒(おそらくミリ秒)が必要なようです。これは、FTP から書き込まれているファイルに関係している可能性もあります (オーバーヘッドの可能性があります。ここでは完全に推測しています...)
ノードでファイルを読み取ろうとする前に、ファイルがファイルシステムに完全に書き込まれるのを待つ方法はありますか?
fs.readFile(file, 'utf8', function(err, data) {
var json = JSON.parse(data); // throws error
});