管道流到变量!?要么 ....?

时间:2015-01-18 05:44:49

标签: javascript node.js express stream

管道流到变量的选项是什么?基于此documentation,可写流的示例包括:

  • http请求,在客户端
  • http响应,在服务器fs上写
  • streams zlib streams
  • crypto streams
  • tcp套接字
  • 子进程stdin
  • process.stdout,process.stderr

这是否意味着我无法将流管道传输到变量来处理它?实际上我不想将流保存在我的磁盘上,那么管道所有流并使用该数据的最佳方法是什么?

如果您需要更多说明,请告诉我们!

1 个答案:

答案 0 :(得分:4)

您可能可以将流传输到变量,但pipe通常用于将流传输到可以利用流的其他方法,因为pipe从可读的数据中提取所有数据流,并将其写入提供的目标,自动管理流,以便目标不会被快速可读的流淹没。

例如,将流管道传输到文件

someReadableStream.pipe(fs.createWriteStream("result.json"));

如果您只想要变量中的数据,那么有些事件可能更容易使用,例如on('data')

var readable = getReadableStreamSomehow(),
    result   = '';

readable.on('data', function(chunk) {
      result += chunk;
});

readable.on('end', function () {
    // do something with "result"
});