Node有哪些常用 Stream流?分别什么时候使用?

Node有哪些常用 Stream流?分别什么时候使用? 在 Node.js 中,流(Stream)是一种处理数据的方法,提供了一种更高效的方式来处理文件和网络请求。流主要分为四种类型: Writable Stream (可写流) 用途: 用于写入数据,比如将数据写入文件、HTTP 响应或网络连接。 示例: fs.createWriteStream()、http.ServerResponse 的 write() 方法。 使用场景: 当需要把数据写出(例如,日志记录、文件保存、响应客户端请求时发送数据)。 Readable Stream (可读流) 用途: 用于读取数据,比如从文件、HTTP 请求或数据库中读取数据。 示例: fs.createReadStream()、http.IncomingMessage、Readable 类。 使用场景: 当需要从外部读取数据(例如,从文件中读取、接收客户端的 HTTP 请求等)。 Duplex Stream (双工流) 用途: 同时支持读写操作的流,例如可以从中读取数据,也可以向其写入数据。 示例: net.Socket、stream.Duplex 类型。 使用场景: 适用于需要进行双向通信的场景,比如实时的通信应用(如聊天应用、WebSocket 等)。 Transform Stream (转换流) 用途: 对数据进行转化操作的流,可以在读写时对数据进行修改、过滤或压缩。 示例: stream.Transform、压缩库如 zlib.createGzip()。 使用场景: 当需要对读取的数据进行变换(例如,将文本转换为大写、数据压缩等),同时可能会进行读写操作。

来源整理自:vue3js.cn 面试官系列