如何找到传递的数据块?。
var crypto = require('crypto');
var fs = require('fs');
var readStream = fs.createReadStream('notes.txt');
var hash = crypto.createHash('sha1');
readStream
.on('data', function (chunk) {
hash.update(chunk);
})
.on('end', function () {
console.log(hash.digest('hex'));
});
在data
readable
的{{1}}流上触发了each chunk of data
事件,有没有办法可以弄清楚每个数据块的传递是什么? /强>
以下是我的sample
文字文件。
one
two
three
four
答案 0 :(得分:1)
默认情况下,没有字符串解码器,因此流可以使用缓冲区(当然,除非在对象模式下)。您可以通过.toString()
将Buffer转换为字符串,以查看块的字符串表示形式。但是,由于如何设计utf8(.toString()
的默认编码),因此可能无法始终正确显示(例如,某些字符跨越多个字节,因此块可能以部分字符结束)。 .toString()
的示例:
readStream
.on('data', function (chunk) {
hash.update(chunk);
console.log(chunk.toString());
})