Встроенный модуль Node fs
не очень хорошо поддерживает обнаружение удаления файлов. Существует обходной путь, использующий пакет под названием nsfw , который является оберткой вокруг собственной библиотеки, которая обеспечивает гораздо лучшую поддержку для обнаружения удаления. API немного странный, но, тем не менее, это пакет solid.
Вот пример того, что вы пытаетесь сделать с помощью nsfw.
const nsfw = require("nsfw");
const path = require("path");
const fs = require("fs");
const file = path.join(__dirname, "file.txt");
let watcher;
nsfw(
file,
([event, ...restEvents]) => {
switch (event.action) {
case nsfw.actions.DELETED: {
watcher.stop();
return; // or handle this however you need to..
}
default: {
fs.readFile(file, (err, data) => {
if (err) throw err;
try {
data = JSON.parse(data);
console.log(data);
} catch (error) {
console.error(error)
}
});
}
}
}
)
.then((w) => {
watcher = w;
watcher.start()
});