检测来自node.js的文件内容更改

刚无聊

我有一个简单的文件观察器构建 chokidar

require('chokidar').watch('./target.txt', {}).on('all', function(event, path) {
  console.log(event, path);
}).on('ready', function() {
  console.log('ready');
});

change每当我重新保存文件时,即使没有更改,它也会导致事件。仅当实际内容已更改时,是否有办法使此火灾事件发生?

老人

您可以使用stats上传递参数addchange这仅适用于文件大小的更改,这在绝大多数情况下应该足够了。

   var watchSize = 0;

    require('chokidar').watch('./target.txt', {}).on('all', function(event, path, stats) {  

        if(stats && stats.size != watchSize) {
            watchSize = stats.size;
            console.log(event);
        }
    }).on('ready', function(path, stats) {
      console.log('ready');
    });

如果剩下的几种情况确实与您的情况相关,并且您没有性能方面的顾虑,则可以使用类似以下的内容(遵循注释中的建议):

var crypto   = require("crypto");
var fs       = require("fs");
var chokidar = require("chokidar");

watchFile("./target.txt");

//----------------------------------------------------
function watchFile(filePath){

    var watchHash;

    chokidar.watch(filePath, {}).on("all", function(event, path, stats) {

        if (event == "add" || event == "change"){

            getHash(filePath, function(hash){
                if (hash != watchHash){
                    watchHash = hash;
                    console.log(event);
                }
            });
        }
    });
}

//----------------------------------------------------
function getHash(filePath, callback){

    var stream = fs.ReadStream(filePath);   
    var md5sum = crypto.createHash("md5");

    stream.on("data", function(data) {
        md5sum.update(data);
    });

    stream.on("end", function() {
        callback(md5sum.digest("hex"));
    });
}

不过,这似乎有点多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以通过 node.js 检测请求类型(来自 html 或用户客户端)吗

来自分类Dev

检测PHP中来自AJAX请求的文件

来自分类Dev

下载JSON文件内容jQuery Node js

来自分类Dev

使用node.js更改文件

来自分类Dev

Node.js 更改静态文件的路径

来自分类Dev

检测新tr或内容更改

来自分类Dev

如何检测Node.js中的条目文件?

来自分类Dev

如何在Node.js中同步读取文件内容?

来自分类Dev

在node.js中读取csv文件的内容

来自分类Dev

返回node.js中多个文件的内容

来自分类Dev

使用Node JS从本地目录中的文件中剥离内容

来自分类Dev

如何使用Node.js读取.pdf文件的内容?

来自分类Dev

android代码来检测文件夹的内容是否有任何更改

来自分类Dev

Node.js-检测图像优化

来自分类Dev

在node.js上检测纯色图像

来自分类Dev

在Node.js中检测硬链接

来自分类Dev

javascript更改JS文件中的文本内容

来自分类Dev

在Vue.js中,组件可以检测广告位内容何时更改

来自分类Dev

v-bind未检测到数组内容的更改(vue js)

来自分类Dev

解析来自Node js + handlebars的POST请求

来自分类Dev

来自node.js的回调函数

来自分类Dev

来自模块的node.js变量

来自分类Dev

解析来自Node js + handlebars的POST请求

来自分类Dev

来自 Node.js 的 Oracle Coherence

来自分类Dev

Node.js - 显示来自 MongoDB 的图像

来自分类Dev

显示来自数组的链接 (node.js)

来自分类Dev

根据内容检测文件类型

来自分类Dev

来自管道内容的grep文件内容

来自分类Dev

Node.js错误,未更改,请打开“文件/路径”