javascript - 使用 Node.js 存储哈希值

标签 javascript node.js hash

我正在使用 Node.js 为文件生成哈希值,然后当文件发生更改时,我想在保存之前将其与之前的版本进行匹配。例如,如果没有发生任何更改,则不会进行保存。

我尝试使用以下代码来完成任务(受到 doc of Node.js 的启发):

var filename = __dirname + '/public/team.html';
var shasum = crypto.createHash('sha1');

var s = fs.ReadStream(filename);
s.on('data', function(d) {
  shasum.update(d);
});

s.on('end', function() {
  var d = shasum.digest('hex');
  console.log(d + '  ' + filename);
});

我想知道如何保存文件的哈希值以便以后进行匹配。任何想法都非常受欢迎。

最佳答案

简单的解决方案:只需将其写入一个文件(您要保存的每个文件一个附加信息文件)。

一种更复杂的解决方案:保留一个包含所有哈希值的文件,例如对(路径,哈希值)。每次都必须加载文件、解析数据并保存。

正确的解决方案:使用数据库。使用 SQLite 应该非常容易,并且您不需要单独的数据库服务器。以下是 NodeJS 驱动程序的示例:

https://github.com/developmentseed/node-sqlite3

关于javascript - 使用 Node.js 存储哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789744/

相关文章:

javascript - 你不知道的JS : Async and Performance - cooperative concurrency?

node.js - Mongoose 不创建索引

c# - C# 中的哈希密码和盐密码

Python:如何使相同类型的可比较的可哈希对象被 set/dict 视为单个对象?

javascript - Ajax 加载内联 javascript

javascript - Highcharts 中的不规则时间数据

node.js - Nodemailer gmail oauth 问题

javascript - ES6 动态导入和实例化类

hash - 为什么java hashCode()中经常使用XOR,而其他按位运算符却很少使用?

Javascript:范围链/变量查找性能