我正在编写一些 node.js 代码,我想在文件加载到目录时触发操作,或者当该文件在那里更新时 - 我期望目录中的相同文件名将被替换反复。
因此,当节点子进程完成将文件保存到监视目录时,我想触发使用该文件的后续进程:
该线程似乎相关,但对于如何知道文件何时更新或替换还不够明确:使用 node.js 观察文件夹的更改,并在更改时打印文件路径
隐含地,在触发下一个事件之前,我还需要验证对监视目录中文件的更新过程是否完成。
一如既往地感谢您的建议!
我正在编写一些 node.js 代码,我想在文件加载到目录时触发操作,或者当该文件在那里更新时 - 我期望目录中的相同文件名将被替换反复。
因此,当节点子进程完成将文件保存到监视目录时,我想触发使用该文件的后续进程:
该线程似乎相关,但对于如何知道文件何时更新或替换还不够明确:使用 node.js 观察文件夹的更改,并在更改时打印文件路径
隐含地,在触发下一个事件之前,我还需要验证对监视目录中文件的更新过程是否完成。
一如既往地感谢您的建议!
我认为您链接它的线程非常明确,不是吗?您可以使用标准方法fs.watch
and fs.watchFile
,也可以使用一个不错的小包装器,例如https://github.com/paulmillr/chokidar。IE:
var chokidar = require('chokidar');
var watcher = chokidar.watch('dir/', {ignored: /^\./, persistent: true});
watcher
.on('add', function(path) {console.log('File', path, 'has been added');})
你也可以使用notify
。
var Notify = require('fs.notify');
var files = [
'/path/to/file',
'/file/i/want/to/watch'
];
var notifications = new Notify(files);
notifications.on('change', function (file, event, path) {
console.log('caught a ' + event + ' event on ' + path);
});
// if you want to add more files you can use the
notifications.add([path, morepaths]);
// kill everything
notifications.close();
但是chokidar
更好。