node.js中Buffer对象有什么用
这篇文章将为大家详细讲解有关node.js中Buffer对象有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Buffer对象,是Node的核心模块,在面试中也是会频繁被问到一个考题,如果没有对其深入探究,可能就跟我一样只会用,一旦面试官扩展问些问题可能就不会了。反正,当时我也只能回答说:目前涉及到的业务对Buffer模块用的比较少,但是Buffer对象可以对于一些字符串传输无法满足业务功能和性能上得到有效的优化。
Buffer对象
Buffer对象用于表示固定长度的字节序列
//创建一个长度为10、以零填充的Buffer。 constbuf1=Buffer.alloc(10); //创建一个长度为10的Buffer, //其中全部填充了值为`1`的字节。 constbuf2=Buffer.alloc(10,1); varstr="helloJasen"; varbuf=newBuffer.from(str,'utf-8'); console.log(buf); //输出:
观察输出的结果,Buffer对象类似一个数组。
Buffer对象中的每个元素都是16进制的两位数(即0到255的数值)
对Buffer某个元素赋值如果小于0的,会逐次加256,直到得到一个0到255范围的值,如果大于255则逐次减256,直到得到0-255范围得值,如果是小数的话,则直接取整。
使用场景
可用于处理大量二进制数据
处理图片、文件接收上传、网络协议等等
优势
网络传输中,性能提升
大部分网络传输的时候会使用通过使用字符串,这难免需要转换成Buffer,以二进制方式进行数据传输。如果我们直接预先转换为Buffer 再进行传输,那么在传输过程中无需做额外的转换,也避免了损耗,使性能得到提升。
以下通过ab进行一次性能测试,发起200个并发客户端请求的结果,QPS提升的不是很高,但还是有一点点的提升,可以复制代码执行下,是否结果和我一样
varhttp=require('http'); varstr=""; for(vari=0;i<1024*10;i++){ str+="a"; } str=newBuffer.from(str,'utf-8'); http.createServer(function(req,res){ res.writeHead(200); res.end(bufstr); }).listen(8002);
Buffer与Stream
Stream 也是Node的核心模块,数据就像流水一样,流是对输入输出设备的抽象,是一组有序的、有起点和终点的字节数据传输手段。
Node.js 中有四种基本的流类型:
Writable - 可写入数据的流(例如 fs.createWriteStream())
Readable - 可读取数据的流(例如 fs.createReadStream())。
Duplex - 可读又可写的流(例如 net.Socket)。
Transform - 在读写过程中可以修改或转换数据的
Duplex
流
场景:
文件分片上传下载,比如下载电影时可以边下载边看,这样一个实现过程。
关于“node.js中Buffer对象有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
推荐阅读
-
Node.js实现断点续传
Node.js实现断点续传目录方案分析切片断点续传具体解决流程逻辑分析前端服务端小结方案分析切片就是对上...
-
使用Node.js怎么实现一个HTTP服务器
这篇文章将为大家详细讲解有关使用Node.js怎么实现一个HTTP服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅...
-
使用Node.js怎么实现一个大文件分片上传功能
使用Node.js怎么实现一个大文件分片上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这...
-
jade模板引擎如何在Node.js中使用
jade模板引擎如何在Node.js中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章...
-
如何在Node.js中引入UIBootstrap
本篇文章给大家分享的是有关如何在Node.js中引入UIBootstrap,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这...
-
Angular如何在Node.js中使用
本篇文章为大家展示了Angular如何在Node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍...
-
AngularJS怎么在Node.js中使用
本篇文章给大家分享的是有关AngularJS怎么在Node.js中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文...
-
使用node.js如何连接mysql
使用node.js如何连接mysql?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
-
body-parser怎么在node.js中使用
本篇文章为大家展示了body-parser怎么在node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的...
-
如何在node.js中使用Express服务器
这篇文章给大家介绍如何在node.js中使用Express服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助...
-
Node.js实现断点续传
Node.js实现断点续传目录方案分析切片断点续传具体解决流程逻辑分析前端服务端小结方案分析切片就是对上...
-
使用Node.js怎么实现一个HTTP服务器
这篇文章将为大家详细讲解有关使用Node.js怎么实现一个HTTP服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅...
-
使用Node.js怎么实现一个大文件分片上传功能
使用Node.js怎么实现一个大文件分片上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这...
-
jade模板引擎如何在Node.js中使用
jade模板引擎如何在Node.js中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章...
-
如何在Node.js中引入UIBootstrap
本篇文章给大家分享的是有关如何在Node.js中引入UIBootstrap,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这...
-
Angular如何在Node.js中使用
本篇文章为大家展示了Angular如何在Node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍...
-
AngularJS怎么在Node.js中使用
本篇文章给大家分享的是有关AngularJS怎么在Node.js中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文...
-
使用node.js如何连接mysql
使用node.js如何连接mysql?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
-
body-parser怎么在node.js中使用
本篇文章为大家展示了body-parser怎么在node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的...
-
如何在node.js中使用Express服务器
这篇文章给大家介绍如何在node.js中使用Express服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助...
-
Node.js实现断点续传
Node.js实现断点续传目录方案分析切片断点续传具体解决流程逻辑分析前端服务端小结方案分析切片就是对上...
-
使用Node.js怎么实现一个HTTP服务器
这篇文章将为大家详细讲解有关使用Node.js怎么实现一个HTTP服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅...
-
使用Node.js怎么实现一个大文件分片上传功能
使用Node.js怎么实现一个大文件分片上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这...
-
jade模板引擎如何在Node.js中使用
jade模板引擎如何在Node.js中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章...
-
如何在Node.js中引入UIBootstrap
本篇文章给大家分享的是有关如何在Node.js中引入UIBootstrap,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这...
-
Angular如何在Node.js中使用
本篇文章为大家展示了Angular如何在Node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍...
-
AngularJS怎么在Node.js中使用
本篇文章给大家分享的是有关AngularJS怎么在Node.js中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文...
-
使用node.js如何连接mysql
使用node.js如何连接mysql?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
-
body-parser怎么在node.js中使用
本篇文章为大家展示了body-parser怎么在node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的...
-
如何在node.js中使用Express服务器
这篇文章给大家介绍如何在node.js中使用Express服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助...