我的编程空间,编程开发者的网络收藏夹
学习永远不晚

node.js中Buffer对象有什么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

node.js中Buffer对象有什么用

这篇文章将为大家详细讲解有关node.js中Buffer对象有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Buffer对象,是Node的核心模块,在面试中也是会频繁被问到一个考题,如果没有对其深入探究,可能就跟我一样只会用,一旦面试官扩展问些问题可能就不会了。反正,当时我也只能回答说:目前涉及到的业务对Buffer模块用的比较少,但是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提升的不是很高,但还是有一点点的提升,可以复制代码执行下,是否结果和我一样

node.js中Buffer对象有什么用

node.js中Buffer对象有什么用

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 中有四种基本的流类型:

  • Writable - 可写入数据的流(例如 fs.createWriteStream())

  • Readable - 可读取数据的流(例如 fs.createReadStream())。

  • Duplex - 可读又可写的流(例如 net.Socket)。

  • Transform - 在读写过程中可以修改或转换数据的 Duplex

场景:

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

关于“node.js中Buffer对象有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

node.js中Buffer对象有什么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js中的Buffer对象及创建方式是什么

Node.js中的Buffer对象及创建方式是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Buffer?js语言自身只有字符串数据类型,没有二进制数据类型,而处
2023-06-26

Node.js的模块化机制和Buffer对象是什么

本篇内容主要讲解“Node.js的模块化机制和Buffer对象是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js的模块化机制和Buffer对象是什么”吧!一、Node.js的模块
2023-06-29

Node.js实用代码段之获取Buffer对象字节长度

我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了。Node.js框架为开发人员提供了一个Buffer.byteLength()方法,下面我们借助一
2022-06-04

C# 中Employee对象有什么用

今天就跟大家聊聊有关C# 中Employee对象有什么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# Employee对象我们将创建一个函数来遍历模型空间,以用来查找加入的C#
2023-06-17

VBS中FileSystemObject对象有什么用

这篇文章给大家介绍VBS中FileSystemObject对象有什么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。FileSystemObject对象概述FileSystemObject 对象的作用:提供对计算机文件
2023-06-08

Python中Ellipsis对象有什么用

本篇文章为大家展示了Python中Ellipsis对象有什么用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Ellipsis在 Python 中你可能有时候会看到一个奇怪的用法,就像是这样:>
2023-06-16

ES6对象有什么用

这篇文章主要介绍了ES6对象有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ES6全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,20
2023-06-28

PHP中object对象有什么作用

本篇文章给大家分享的是有关PHP中object对象有什么作用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP object对象初始化:要初始化一个对象,用 new 语句将对
2023-06-17

python中vim有什么对象

小编给大家分享一下python中vim有什么对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python的优点有哪些1、简单易用,与C/C++、Java、C#
2023-06-14

编程热搜

目录