关于 Node.js Stream API 的用法概述

Posted JerryWang汪子熙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 Node.js Stream API 的用法概述相关的知识,希望对你有一定的参考价值。


多年来,Node.js 开发人员创建了许多包,其目的是让使用流变得更容易。

什么是 Node.js Stream?

Node.js 应用程序由单个进程运行,无需为每个请求创建新线程。 Node 在其标准库中提供了一组异步 I/O 原语,可以防止 javascript 代码阻塞,通常,Node.js 中的库是使用非阻塞范例编写的,使阻塞行为成为异常而不是正常行为。

关于

流是数据的集合——就像数组或字符串一样。 不同之处在于流可能不会一次全部可用,也就是说,它们不必一次行加载到内存中。 这使得流在处理​​大量数据​​或一次来自外部源的数据时非常强大。

然而,流不仅仅是处理大数据。 它们还赋予了我们代码中可组合性的力量。 就像我们可以通过管道传递其他较小的 Linux 命令来组成强大的 linux 命令一样,我们可以在 Node 中使用流执行完全相同的操作。

关于

Node 中的许多内置模块都实现了流接口,下面是一些例子:

关于

上面的列表有一些原生 Node.js 对象的示例,这些对象也是可读和可写的流。 其中一些对象既是可读流又是可写流,例如 TCP 套接字、zlib 和加密流。

请注意,这些对象彼此之间也密切相关。 虽然 HTTP 响应是客户端上的可读流,但它是服务器上的可写流。 这是因为在 HTTP 案例中,我们基本上从一个对象 (http.IncomingMessage) 读取并写入另一个对象 (http.ServerResponse)。

另外请注意,当涉及到子进程时,stdio 流(stdin、stdout、stderr)是如何维护逆流类型(inverse Stream Type)的。 这允许开发人员采取一种非常简单的方法,从主进程 stdio 流与这些流进行管道传输。


以上是关于关于 Node.js Stream API 的用法概述的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js Stream API 减少服务器端内存消耗?

如何使用 Node.js Stream API 减少服务器端内存消耗?

如何使用 Node.js Stream API 减少服务器端内存消耗?

Node.js 文件上传(Express 4、MongoDB、GridFS、GridFS-Stream)

如何使用 node.js 顺序读取 csv 文件(使用流 API)

Node.js Stream