将文件添加到目录时,在node.js中获取通知

时间:2013-08-31 23:21:25

标签: javascript node.js socket.io watch

我正在编写一些node.js代码,我希望在将文件加载到目录时触发操作,或者在那里更新该文件时 - 我希望将替换相同的文件名在目录中反复出现。

因此,当节点子进程完成将文件保存到监视目录时,我想触发使用该文件的后续进程:

这个帖子似乎有关,但不太清楚如何知道文件的更新或替换时间:Watch a folder for changes using node.js, and print file paths when they are changed

隐含地,我还需要验证在触发下一个事件之前,已完成监视目录中文件的更新过程。

一如既往地感谢您的建议!

2 个答案:

答案 0 :(得分:2)

我认为你把它链接起来的线程很明确,不是吗?您可以使用标准方法fs.watchfs.watchFile,也可以使用https://github.com/paulmillr/chokidar之类的小包装器。即:

var chokidar = require('chokidar');

var watcher = chokidar.watch('dir/', {ignored: /^\./, persistent: true});

watcher
  .on('add', function(path) {console.log('File', path, 'has been added');})

答案 1 :(得分:0)

您也可以使用this.getOrder(orderId, includes) .switchMap(order => this.searchItems() .map(items => ({...order, items: items.results})) );

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(); 更好。