2013-04-03 143 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