js buffer对象,

  js buffer对象,

  本文向您介绍node.js中的Buffer对象,并查看Buffer对象的使用场景和优点。

  node.js速度课程简介:进入学习

  缓冲对象,是Node的核心模块,在面试中会经常被问到一个测试问题。如果不深入发掘,可能只会像我这样用。一旦面试官展开,问了一些问题,可能就不会了。反正当时我只能回答目前涉及的业务使用的缓冲模块比较少,但是对于一些字符串传输无法满足的业务功能和性能,缓冲对象是可以有效优化的。[推荐研究:《nodejs 教程》]

  所以,今天学习一下缓冲对象。

  Buffer对象

  Buffer对象用于表示固定长度的字节序列。

  //创建一个长度为10且零填充的缓冲区。

  const buf 1=buffer . alloc(10);

  //创建一个长度为10的缓冲区,

  //它们都用值为‘1’的字节填充。

  const buf2=Buffer.alloc(10,1);

  var str=你好,王梓安;

  var buf=new Buffer.from(str, utf-8 );

  console . log(buf);

  //Output:buffer 68 65 6c6f 20 4a 61 73 656 e观察输出结果。缓冲区对象类似于数组。

  Buffer对象中的每个元素都是十六进制的两位数(即0到255之间的值)。

  如果分配给Buffer的一个元素的值小于0,它将被逐个加256,直到获得范围从0到255的值;如果大于255,则逐个减去256,直到得到0到255范围内的值;如果是小数,直接四舍五入。

  使用场景

  可用于处理大量二进制数据处理图片、文件接收上传、网络协议等。优势

  网络传输中,性能提升

  网络传输大部分会使用through-string,不可避免的需要转换成Buffer以二进制方式传输数据。如果我们直接提前转换到Buffer再传输,传输过程中就不需要做额外的转换,也避免了损失,提高了性能。

  下面的性能测试由ab进行,发起200个并发客户端请求的结果。QPS没有得到很大的改善,但还是有一点进步。您可以复制代码并执行它。结果和我的一样吗?

  var http=require( http );

  var str=“”;

  for(var I=0;i 1024 * 10i ) {

  str= a

  }

  str=new Buffer.from(str, utf-8 );

  http.createServer(function (req,res) {

  RES . write head(200);

  RES . end(bufstr);

  }).听(8002);Buffer与Stream

  流也是Node的核心模块。数据如流水。流是输入输出设备的抽象,是一组有起点和终点的有序字节数据传输手段。

  Node.js中有四种基本的流类型:

  可写-可以写入数据的流(例如fs.createwritestream())可读-可以读取数据的流(例如fs.createReadStream())。双工-可读和可写的流(例如,net。插座)。转换-双工流场景,其中数据可以在读写过程中修改或转换:

  文件上传和分片下载,比如边看边下载电影,就是一个实现过程。

  有关编程的更多信息,请访问:编程入门!即node.js中的Buffer对象是什么?关于什么是使用场景的更多细节,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: