Когда запускается приведенный ниже код, часы запускаются только тогда, когда я редактирую и сохраняю tmp.txt вручную, используя либо мой ide, TextEditor.app, либо vim.
Это не с помощью метода потока записи или ручного перенаправления вывода оболочки (введите echo «test»> /path/to/tmp.txt").
Хотя, если я посмотрю сам файл, а не его dirname, тогда он работает.
var fs, Path, file, watchPath, w;
fs = require('fs' );
Path = require('path');
file = __dirname + '/tmp.txt';
watchPath = Path.dirname(file); // changing this to just file makes it trigger
w = fs.watch ( watchPath, function (e,f) {
console.log("will not get here by itself");
w.close();
});
fs.writeFileSync(file,"test","utf-8");
fs.createWriteStream(file, {
flags:'w',
mode: 0777
} )
.end('the_date="'+new Date+'";' ); // another method fails as well
setTimeout (function () {
fs.writeFileSync(file,"test","utf-8");
},500); // as does this one
// child_process exec and spawn fail the same way with or without timeout
Итак, вопросы: почему? и как программно вызвать это событие из скрипта узла?
Спасибо!