在node中,buffer用于在内存中存放二进制数据,可以在处理TCP流或者文件流时作为缓存区,专门用于存放使用到的二进制数据;nodejs不能控制数据传输的时间,若没到发送时间,则数据会存放在Buffer中,直至将数据发送完毕。
本文操作环境:Windows10系统、nodejs 12.19.0版、Dell G3电脑。
在Node应用中,需要处理网络协议、操作数据库、处理图片、接收上传文件等,在网络流和文件的操作中,要处理大量二进制数据,而Buffer就是在内存中开辟一片区域(初次初始化为8KB),用来存放二进制数据
在上述操作中都会存在数据流动,每个数据流动的过程中,都会有一个最小或最大数据量
如果数据到达的速度比进程消耗的速度快,那么少数早到达的数据会处于等待区等候被处理。反之,如果数据到达的速度比进程消耗的数据慢,那么早先到达的数据需要等待一定量的数据到达之后才能被处理
这里的等待区就指的缓冲区(Buffer),它是计算机中的一个小物理单位,通常位于计算机的 RAM 中
简单来讲,Nodejs不能控制数据传输的速度和到达时间,只能决定何时发送数据,如果还没到发送时间,则将数据放在Buffer中,即在RAM中,直至将它们发送完毕
上面讲到了Buffer是用来存储二进制数据,其的形式可以理解成一个数组,数组中的每一项,都可以保存8位二进制:00000000,也就是一个字节
定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区
在处理像 TCP 流或文件流时,必须使用到二进制数据。因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
创建 Buffer 类
Node Buffer 类可以通过多种方式来创建。
方法 1
创建长度为 10 字节的 Buffer 实例:
var buf = new Buffer(10);
方法 2
通过给定的数组创建 Buffer 实例:
var buf = new Buffer([10, 20, 30, 40, 50]);
方法 3
通过一个字符串来创建 Buffer 实例:
var buf = new Buffer("bianchengsanmei", "utf-8");
utf-8 是默认的编码方式,此外它同样支持以下编码:“ascii”, “utf8”, “utf16le”, “ucs2”, “base64” 和 “hex”。
推荐学习:《nodejs视频教程》
以上就是node中的buffer有啥用的详细内容,更多请关注php中文网其它相关文章!
已抢17073个
抢已抢50033个
抢已抢184311个
抢已抢66142个
抢已抢350519个
抢已抢664385个
抢