跳转到内容
搜索文档

Buffer

最后更新 查看 MarkdownAgent 设置

Node.js 中的 Buffer API 是处理二进制数据最常用的 Node.js API 之一。每个 Buffer 实例都继承自标准 Uint8Array 类,但增加了多种独特能力,例如内置 base64 和 hex 编解码、字节序操作以及感知编码的子串搜索。

import { Buffer } from "node:buffer";

const buf = Buffer.from("hello world", "utf8");

console.log(buf.toString("hex"));
// Prints: 68656c6c6f20776f726c64
console.log(buf.toString("base64"));
// Prints: aGVsbG8gd29ybGQ=

Buffer 继承自 Uint8Array。因此,它可用于任何当前接受 Uint8Array 的 Workers API,例如创建新的 Response:

const response = new Response(Buffer.from("hello world"));

与流交互时也可以使用 Buffer API:

const writable = getWritableStreamSomehow();
const writer = writable.getWriter();
writer.write(Buffer.from("hello world"));

Workers 的 Buffer 实现与 Node.js 实现之间的一个关键区别是:Node.js 中某些创建 Buffer 的方法会从全局内存池分配内存以优化性能。Workers 实现不使用内存池,所有 Buffer 实例均独立分配。

此外,在 Node.js 中可以使用 Buffer.allocUnsafe() 方法分配未初始化的 Buffer 内存。Workers 不支持此方式,Buffer 实例始终被初始化,分配时 Buffer 始终填充空字节(0x00)。

更多信息请参阅 Node.js Buffer 文档

这篇文档对您有帮助吗?