• 技术文章 >web前端 >js教程

    node.js中什么是Buffer对象?使用场景是什么

    青灯夜游青灯夜游2021-07-28 18:41:37转载333
    本篇文章给大家介绍一下node.js中的Buffer对象,看看Buffer对象的使用场景是什么,有哪些优势。

    Buffer对象,是Node的核心模块,在面试中也是会频繁被问到一个考题,如果没有对其深入探究,可能就跟我一样只会用,一旦面试官扩展问些问题可能就不会了。反正,当时我也只能回答说:目前涉及到的业务对Buffer模块用的比较少,但是Buffer对象可以对于一些字符串传输无法满足业务功能和性能上得到有效的优化。【推荐学习:《nodejs 教程》】

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

    Buffer对象

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

    // 创建一个长度为 10、以零填充的 Buffer。
    const buf1 = Buffer.alloc(10);
    
    // 创建一个长度为 10 的 Buffer,
    // 其中全部填充了值为 `1` 的字节。
    const buf2 = Buffer.alloc(10, 1);
    
    var str="hello Jasen"; 
    var buf = new Buffer.from(str,'utf-8');
    console.log(buf);
    
    //输出:<Buffer 68 65 6c 6c 6f 20 4a 61 73 65 6e>

    观察输出的结果,Buffer对象类似一个数组。

    Buffer对象中的每个元素都是16进制的两位数(即0到255的数值)

    对Buffer某个元素赋值如果小于0的,会逐次加256,直到得到一个0到255范围的值,如果大于255则逐次减256,直到得到0-255范围得值,如果是小数的话,则直接取整。

    使用场景

    优势

    网络传输中,性能提升

    大部分网络传输的时候会使用通过使用字符串,这难免需要转换成Buffer,以二进制方式进行数据传输。如果我们直接预先转换为Buffer 再进行传输,那么在传输过程中无需做额外的转换,也避免了损耗,使性能得到提升。

    以下通过ab进行一次性能测试,发起200个并发客户端请求的结果,QPS提升的不是很高,但还是有一点点的提升,可以复制代码执行下,是否结果和我一样

    1.png

    2.png

    var http = require('http');
    var str = "";
    
    for (var i = 0; i < 1024 * 10; i++) {
        str += "a";
    }
    
    str = new Buffer.from(str,'utf-8');
    
    http.createServer(function (req, res) {
        res.writeHead(200);
        res.end(bufstr);
    }).listen(8002);

    Buffer与Stream

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

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

    场景:

    文件分片上传下载,比如下载电影时可以边下载边看,这样一个实现过程。

    原文地址:https://juejin.cn/post/6955490895131066382

    更多编程相关知识,请访问:编程入门!!

    以上就是node.js中什么是Buffer对象?使用场景是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金--南吕,如有侵犯,请联系admin@php.cn删除
    专题推荐:node.js Buffer对象
    上一篇:JavaScript怎么设置页面标题 下一篇:innerhtml和innertext有哪些差异?两者的简单比较
    大前端线上培训班

    相关文章推荐

    • 这些Nodejs面试难题,你能回答上来吗?• 聊聊Node.js中JSON格式和Excel格式的双向转换• 深入了解Nodejs中的buffer缓存区• 使用Node.js怎么压缩图片?方法介绍• 深入了解Node.js和Electron是如何做进程通信的• 一文搞懂node.js中的事件循环

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网