一、是什么
在node
应用中,需要处理网络协议、操作数据库、处理图片、接收上传文件等,在网络流和文件的操作中,要处理大量二进制数据,而Buffer
就是在内存中开辟一片区域(初次初始化为8KB),用来存放二进制数据
在上述操作中都会存在数据流动,每个数据流动的过程中,都会有一个最小或最大数据量
如果数据到达的数据比进程消耗的速度快,那么少数早到达的数据会处于等待区等候被处理。反之,如果数据到达的熟读比进程消耗的数据慢,那么早先到达的数据需要等待一定量的数据到达之后才能被处理。
这里的等待区就指的是缓冲区(Buffer),它是计算机中的一个小物理单位,通常位于计算机的RAM
中
简单来讲,NodeJs
不能控制数据传输的速度和到达时间,只能决定何时发送数据,如果还没到发送时间,则将数据放在Buffer
中,即在RAM
中,直至将它们发送完毕
上面讲到了Buffer
是用来存储二进制数据的,其形式可以理解为一个数组,数组中的每一项,都可以保存8位二进制:00000000
,也就是一个字节
例如:
const buffer = Buffer.from('why');
其存储过程如下图所示:
二、使用方法
Buffer
类在全局作用域中,无须require
导入
创建Buffer
的方法有很多种,我们讲讲下面的两种常见的形式:
- Buffer.from()
- Buffer.alloc()
Buffer.from()
const b1 = Buffer.from('10');
const b2 = Buffer.from('10', 'utf8');
c