Nodejs和Streams - 详细概述?

时间:2011-10-11 11:12:26

标签: node.js stream

有人可以向我们解释(只有我吗?)如何在Nodejs中使用Streams?

这是对此的跟进:Compression and decompression of data using zlib in Nodejs

我的主要兴趣是处理文件,还有字符串(即Stream.toString()和String.toStream()......不是真正的函数......)

谢谢!

1 个答案:

答案 0 :(得分:4)

  

流是由Node中的各种对象实现的抽象接口。例如,对HTTP服务器的请求是流,stdout也是如此。流是可读的,可写的,或两者兼而有之。所有流都是EventEmitter的实例。 (Streams Documentation

这意味着Stream是几个Node核心对象用来读取和/或写入信息的有用对象。核心对象都使用它来改进将信息从一个对象传递到另一个对象的方式。由于Stream是EventEmitter的一个实例,因此您的代码可以是异步的,并且在从某处读取信息时不会停止。

// imagine 'response' is the output Stream from a client connection
var video = fs.createReadStream("/path/to/video.mpg");
// pipe video to response (while data is being read asynchronously)
video.pipe(response);

检查stream.pipe

例如,在从文件中读取视频时将视频流式传输到HTTP客户端。或者将上传流式传输到本地文件。用你的想象力。