美文网首页
【翻译】Node.js 教程 —— Stream 和 Buffe

【翻译】Node.js 教程 —— Stream 和 Buffe

作者: kyuan | 来源:发表于2018-12-02 18:48 被阅读20次

这节课讲一下 Stream 和 Buffers,在讲 Stream 和 Buffers 之前让我告诉你一个'真实故事':

Node.js 糖山

一男住在森林里,有一天这男遇到了巨大的 Node.js 糖山,他决定要将这巨大的糖山搬回家给孩子吃。这男的十分强壮,但他知道如果要一次将整座山拖回家,将要耗费他一生的时间,拖动的速度很慢而孩子们却十分着急。

他停下来想了一下,想到了一个如何简单快速运输糖山到家里的办法,然后开始建造一个从糖山到家里的自动步道,他想如果使用锄头一块一块地削糖山然后装进纸箱里,倒进自动步道就可以一点一点地传回家里,这样是最好的,因为只要第一堆糖到家了,孩子们就可以开吃,而不用等待整个糖山搬回来。

这个故事实际上跟 Stream 和 Buffers 的工作原理有很多相似的地方。

Buffers

Buffers

首先,什么是 Buffers,Buffers 是一小堆数据将要从一个地方转移到另一个地方的临时存放点,假如我们有大量数据需要从 A 位置传送到 B 位置,我们可以在 Buffer 里一次收集一小部分数据然后进行转移。

传输过程

看起来像这样,我们有完整一份数据,你可以跟糖山的故事进行比较。

如图每次转移一小部分数据到 Buffer(数据临时收集点),而不是等所有数据都保存到内存中,当 Buffer 填满后,数据就会开始传递并进行处理。

Streams

我们已经知道什么是 Buffer 了,那什么是 Stream ? Stream 是数据流,数据会在数据流里从一个地方流动到另一个地方

Streams
如图,我们有某些数据要传送给客户端,数据将会在 Stream 里流动,流到 Buffer 里,当 Buffer 填满数据后,将收集满的数据传递出来并处理然后返回到客户端。

你可能已经听说过流视频,这就是 Stream 和 Buffers 的使用实例,我们不需要等到整部电影都加载完才能观赏电影。这就是使用 Stream 和 Buffers 的好处。

为什么我要告诉你这些,到底这跟 Node.js 有什么关系?Node.js 里可以创建流来读写文件,这种方式能为你的应用提高性能。同样的在 Node 的服务处理请求并响应给客户端的时候也可以这样使用

Node.js 里的流

下节课我们来开始动手写代码吧。

相关文章

网友评论

      本文标题:【翻译】Node.js 教程 —— Stream 和 Buffe

      本文链接:https://www.haomeiwen.com/subject/zkzjcqtx.html