マイアプリPOST /deploy
を呼び出すことにより、指定されたディレクトリ内のファイルを作成します
シンプルなNode.jsのhttpサーバによって書かれたファイルを返しません。ファイルが書き込まれた後、私はconsole.log
を使用して、そのディレクトリ内のすべてのファイルをリストしたいと思います。のNode.js:fs.readdirはfs.writeFile
ファイル(POST /deploy
)を作成するために、私が呼ん:
fs.writeFile(filename, content, 'utf8', callback(null, {'newFile': filename}));
コールバックは、HTTPレスポンスを書き込み、使用したファイルの一覧が表示されます:
fs.readdir(some_directory, (err, files) => {
files.forEach(file => {
console.log(file);
// Do something with the file
}
}
私の問題
新しいファイルコールバックにリストされていません。私は再度deployを呼び出すと、前のファイルがリストされます。たとえば、ファイルa
とb
を/deploy
を連続して使用して作成すると、b
が作成されたときにのみa
が表示され、別の呼び出しが行われるまでb
が表示されません。
コールバックが呼び出されたときにファイルが閉じられていないと仮定して、後でそのファイルが閉じられた後にfs.readdir
への呼び出しのみが表示されるようにします。
ファイルが正しく閉じられた後にコールバック関数を呼び出すにはどうすればいいですか?fs.readdir
を使用してリストすることはできますか?
私はfs.close()
マニュアルを読む
何を試してみました。それは動作しますが、
fd
を必要とし、ファイル名ではなく、私は面倒思われる、それを閉じるためのファイルを開くことがあります。fs.open(ファイル名、「W」、機能(エラー、FD){ fs.write(fd、callback(null、{'newFile':filename}));
}); }); fs.write(fd、content、function(err、written、buffer){ fs.closeあなたは、操作が終了するのを待たずに、すぐにコールバックを実行して上記のコードではfs.writeFile(filename, content, 'utf8', callback(null, {'newFile': filename}));
:
SO
コールバックが疑わしいです。あなたはすでに 'fs.writefile'でコールバックを呼び出しているようです。 –