面试官:说说对 Node 中的 Buffer 的理解?应用场景?
一、是什么
在Node应用中,需要处理网络协议、操作数据库、处理图片、接收上传文件等,在网络
流和文件的操作中,要处理大量二进制数据,而Buffer就是在内存中开辟一片区域(初
次初始化为8KB),用来存放二进制数据
在上述操作中都会存在数据流动,每个数据流动的过程中,都会有一个最小或最大数据量
如果数据到达的速度比进程消耗的速度快,那么少数早到达的数据会处于等待区等候被处
理。反之,如果数据到达的速度比进程消耗的数据慢,那么早先到达的数据需要等待一定
量的数据到达之后才能被处理
这里的等待区就指的缓冲区(Buffer),它是计算机中的一个小物理单位,通常位于计算
机的 RAM 中
简单来讲,Nodejs不能控制数据传输的速度和到达时间,只能决定何时发送数据,如果
还没到发送时间,则将数据放在Buffer中,即在RAM中,直至将它们发送完毕
上面讲到了Buffer是用来存储二进制数据,其的形式可以理解成一个数组,数组中的每
一项,都可以保存8位二进制:00000000,也就是一个字节
例如:
const buffer = Buffer.from("why")
其存储过程如下图所示: