Nodejs 和 Streams - 详细概述?

Eli*_*Eli 5 stream node.js

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

这是此内容的后续内容:Compression and decompression of data using zlib in Nodejs

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

谢谢!

dre*_*nde 5

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

这意味着 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);
Run Code Online (Sandbox Code Playgroud)

检查stream.pipe

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