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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文件添加到目录时,在node.js中获取通知相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

答案

我认为你把它链接的线程很明确,不是吗?您可以使用标准方法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');})
另一答案

你也可以使用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更好。

以上是关于将文件添加到目录时,在node.js中获取通知的主要内容,如果未能解决你的问题,请参考以下文章

我无法将文件上传到我使用 node js multer 指定的目录

Node.js的模块系统

使用 node.js 将目录中的所有文件移动到父级

Node.js - 无法将 Apple 推送通知发送到开发设备以进行调试

如何使用node.js获取当前目录名并显示在html页面上

Firebase 消息推送通知