2013-04-03 79 views
1

我使用Node.js为文件生成哈希,然后在更改时,我想在保存之前将其与先前版本匹配。例如,如果没有发生变化,则不会进行保存。使用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); 
}); 

我想知道我怎么可以保存文件的散列以便事后匹配。任何想法都会受到欢迎。

回答

1

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

一个更复杂的解决方案:保存一个文件,包括像对(路径,哈希)等所有散列。您必须加载文件,解析数据并在每次之后保存。

适当的解决方案:使用数据库。使用SQLite应该很容易,而且不需要单独的数据库服务器。下面是一个的NodeJS司机的例子:

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

+0

OK,然后我去了妥善解决,但我不熟悉的SQLite。它与MongoDB类似吗? – giokokos

+0

如果您已经熟悉MongoDB,那么使用MongoDB来做(假设您不介意设置数据库服务器)。 SQLite与MongoDB类似,只是它们都是数据库。 :D SQLite是一个SQL数据库,因此与MySQL或任何其他SQL数据库非常相似。唯一的主要区别是SQLite不需要单独的服务器(实际上不是必需的优势,取决于您的需求)。 – freakish

+0

好的,谢谢你的回答! – giokokos