Buffer缓冲区和node搜索包的流程

1.node搜索包的流程

我们通过npm下载的包,直接通过包名引入即可。

node在使用模块名字来引入模块时,它会首先在当前目录的node_modules中寻找是否含有该模块,如果有则直接使用,如果没有则去上一级目录node_modules中寻找,如果有则使用,如果没有则再去上一级目录寻找,直到找到为止,直到找到磁盘的根目录,如果依然没有,则报错

2.Buffer缓冲区

Buffer的结构和数组很像,操作的方法和数组类似

传统的数组中无法保存二进制文件(视频和mp3),而Buffer就是用来存储二进制数据的数组。

在Buffer中存储的都是二进制数据,但是在显示时都是以16进制的形式显示。

Buffer中每一个元素的范围是从00-ff

使用buffer不需要引入模块,直接使用即可。

Buffer中的一个元素,占用内存一个字节。

一个汉字占用3个字节

创建一个指定大小的buffer

但是通过查阅node.js文档发现,buffer构造函数不推荐使用。尽量少用,避免后续出现一系列问题。

var buf2 = new Buffer(10) //10个字节的buffer

创建一个10个字节的buffer

var buf2=Buffer.alloc(10)

如何赋值呢?

通过索引,来操作buf中的元素

添加进去数字之后都会将添加的10进制的数字转换为16进制。

buf2[0]=88 //给元素buf2的第一位添加了一个数字88

Buffer的大小一旦确定,则不能修改,Buffer实际上是对我们底层内部的直接操作

只要数字在控制台或页面中输出一定是10进制

Buffer.allocUnsafe(size) 创建一个指定大小的buffer,但是buffer中可能含有敏感数据(分配空间的时候没有清理之前的数据)

回顾Buffer的相关用法

Buffer.from(str) 将一个字符串转换为buffer

Buffer.alloc(size) 创建一个指定大小的Buffer

Buffer.allocUnsafe(size) 创建一个指定大小的Buffer,但是可能包含敏感数据

buf.toString() 将缓冲区中的数据转换为字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值