node中的Buffer

Buffer是什么

buffer翻译的意思是缓冲区

在node中,Buffer是用于存储二进制数据的,在内存中新开辟一块天地,在堆以外的内存

Buffer应用场景

当数据流很大的时候,进行buffer缓存一下,进行进一步获取

buffer不在node进程内存里面,所以可以用于存储大的文件,但是还是有限制 的32位系统的大约是1G,64位的系统 大约是2G

如何使用

如何创建Buffer

流会隐形产生buffer,也可以手动创建的buffer

手动创建buffer

这个还得分类型哦,创建

1. Buffer存储数据确定

Buffer.from(obj) // obj支持的类型string, buffer, arrayBuffer, array, or array-like object

Buffer.from(1234);

buffer.js:208
    throw new errors.TypeError(
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "value" argument must not be of type number. Received type number
    at Function.from (buffer.js:208:11)
    ...
    

若要传入数字可以采用传入数组的方式:

const buf = Buffer.from([1, 2, 3, 4]);
console.log(buf); //  

Buffer存储数据未确定

Buffer.alloc、Buffer.allocUnsafe、Buffer.allocUnsafeSlow

Buffer.alloc会用0值填充已分配的内存,所以相比后两者速度上要慢,但是也较为安全。当然也可以通过--zero-fill-buffers flag使allocUnsafe、allocUnsafeSlow在分配完内存后也进行0值填充。

注意:Buffer.from不支持传入数字,如下所示:

需要谨记一点:new Buffer(xxxx) 方式已经不推荐使用了

参考:
https://juejin.im/post/5afd57e851882542ac7d76af

你可能感兴趣的:(node中的Buffer)