通过查找每个数据块?

时间:2015-01-03 18:46:26

标签: javascript node.js

如何找到传递的数据块?。

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

1 个答案:

答案 0 :(得分:1)

默认情况下,没有字符串解码器,因此流可以使用缓冲区(当然,除非在对象模式下)。您可以通过.toString()将Buffer转换为字符串,以查看块的字符串表示形式。但是,由于如何设计utf8(.toString()的默认编码),因此可能无法始终正确显示(例如,某些字符跨越多个字节,因此块可能以部分字符结束)。 .toString()的示例:

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