📜  Node.js 中的缓冲区是什么?

📅  最后修改于: 2022-05-13 01:56:23.637000             🧑  作者: Mango

Node.js 中的缓冲区是什么?

在本文中,我们将讨论 Node.js 中的缓冲区是什么以及它是如何使用它的。 Node.js 是最流行的 javascript 运行时环境之一,并且 javascript 无法正确处理数据,因此 Node.js 以有效方式处理数据的解决方案提供了一个名为 Buffer 的全局模块。并且 Buffer 也是一个全局对象,因此我们无需编写任何其他代码即可使用 import 或 require。

方法:首先我们了解什么是缓冲区,然后我们将讨论什么是我们可以使用缓冲区的用例,最后我们将讨论缓冲区模块中的所有方法及其用途。

缓冲区:在 Node.js 中操作二进制数据流时,可以在代码中包含缓冲区模块。但是,缓冲区是 Node.js 中的全局对象,因此不需要使用所需的方法在代码中导入它。

它是RAM中的临时内存,用于管理数据块并将其发送处理,缓冲区是适合二进制数据的非常小的块,如果缓冲区已满,则直接发送数据进行处理。有时缓冲区用作数据处理和传入之间的中间件,因为我们需要一个处理器来处理数据,但有时处理器正忙于其他任务,所以我们需要将数据传输到某个地方并需要重新定位。缓冲区满足此要求。 Node.js 中的 Buffer 类提供分配和使用缓冲区的访问权限。并且缓冲区类是一个全局类,所以不需要导入它。如果您想了解有关 Buffer 的更多信息,请查看这篇文章。

用例:缓冲区是用于处理二进制数据流的全局对象,因此我们可以在很多用例中使用它。

  • 用于创建缓冲流处理自定义用户二进制数据。
  • 检查自定义二进制数据是否与实际二进制数据匹配。
  • 将二进制数据转换为可读的字符串或 JSON。
  • 用于重写现有的二进制数据流。

缓冲模块的方法: 下面列出了缓冲模块的一些常用方法和属性。

1. alloc() 方法:它创建一个给定长度的Buffer对象。

Javascript
let buff = new Buffer.alloc(5);
console.log(buff);


Javascript
let name1 = new Buffer.alloc(4, "Name");
let name2 = new Buffer.alloc(4, "Name");
console.log(new Buffer.from(name1).equals(name2));


Javascript
let buff = new Buffer.alloc(5, "Geeks");
let name1 = new Buffer.alloc(5, "Name");
buff.copy(name1);
console.log(name1.toString());


Javascript
let buff = new Buffer.alloc(5, 'ABCDE');
console.log(buff.length)


Javascript
let name2 = new Buffer.alloc(3, "GFG");
console.log(name2);
console.log(name2.toString());


Javascript
let myJson = new Buffer.alloc(10, { name: 'GFG' });
console.log(myJson.toJSON());


输出:

2. equals() 方法:比较两个缓冲区对象。如果对象匹配则返回 true,否则返回 false。

Javascript

let name1 = new Buffer.alloc(4, "Name");
let name2 = new Buffer.alloc(4, "Name");
console.log(new Buffer.from(name1).equals(name2));

输出:

3. copy() 方法:它复制缓冲区对象的给定字节数。

Javascript

let buff = new Buffer.alloc(5, "Geeks");
let name1 = new Buffer.alloc(5, "Name");
buff.copy(name1);
console.log(name1.toString());

输出:

4. length 属性:返回缓冲区对象的长度,以字节为单位。

Javascript

let buff = new Buffer.alloc(5, 'ABCDE');
console.log(buff.length)

输出:

5. toString() 方法:它返回一个字符串形式的缓冲区对象。

Javascript

let name2 = new Buffer.alloc(3, "GFG");
console.log(name2);
console.log(name2.toString());

输出:

6. toJSON() 方法:它返回一个JSON形式的缓冲区对象。

Javascript

let myJson = new Buffer.alloc(10, { name: 'GFG' });
console.log(myJson.toJSON());

输出: