打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于 Node.js Stream API 的用法概述
userphoto

2022.09.02 四川

关注

多年来,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 流与这些流进行管道传输。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
百度工程师带你体验引擎中的nodejs
Node.js
AngularJs+bootstrap搭载前台框架
Angular Cli 设置 淘宝的NPM 镜像
使用 Angular.js, Node.js 和 MongoDB开发简单案例
Angular中文社区 | Angular中文社区
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服