Nodejs和Streams – 详细的概述?

任何人都可以请解释给我们(只是我?)如何在Nodejs中使用stream?

这是后续的: 在Nodejs中使用zlib压缩和解压缩数据

我的主要兴趣是处理文件,但也string(即Stream.toString()和String.toStream()…不是真正的function…)

谢谢!

stream是由Node中的各种对象实现的抽象接口。 例如,对HTTP服务器的请求是一个stream,就像stdout一样。 stream可读,可写,或两者兼有。 所有的stream都是EventEmitter的实例。 ( Streams文档 )

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

// 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 。

例如,将videostream传输到HTTP客户端,同时从文件中读取video。 或者上传到本地文件。 动用你的想象力。