【发布时间】:2011-10-11 11:12:25
【问题描述】:
谁能向我们解释一下(只有我?)如何在 Nodejs 中使用 Streams?
这是对此的后续:Compression and decompression of data using zlib in Nodejs
我的主要兴趣是处理文件,还有字符串(即 Stream.toString() 和 String.toStream()...不是真正的函数...)
谢谢!
【问题讨论】:
谁能向我们解释一下(只有我?)如何在 Nodejs 中使用 Streams?
这是对此的后续:Compression and decompression of data using zlib in Nodejs
我的主要兴趣是处理文件,还有字符串(即 Stream.toString() 和 String.toStream()...不是真正的函数...)
谢谢!
【问题讨论】:
流是由 Node.js 中的各种对象实现的抽象接口。例如,对 HTTP 服务器的请求是一个流,标准输出也是。流是可读的、可写的或两者兼而有之。所有的流都是 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 客户端。或将上传流式传输到本地文件。发挥你的想象力。
【讨论】: