找到传递的每个数据块?

Finding each chunk of data passed?

如何找到传递的数据块?

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 事件在 each chunk of datareadable 流上触发,有什么方法可以弄清楚每个数据块是什么通过?.

下面是我的 sample 文本文件。

one
two
three
four

默认情况下没有字符串解码器,因此流与缓冲区一起工作(当然除非在对象模式下)。您可以通过 .toString() 将 Buffer 转换为字符串,以查看块的字符串表示形式。然而,由于 utf8(.toString() 的默认编码)的设计方式,它可能并不总是正确显示(例如,一些字符跨越一个字节以上,因此一个块可能以部分字符结束)。 .toString() 示例:

readStream
  .on('data', function (chunk) {
    hash.update(chunk);
    console.log(chunk.toString());
  })