Dug*_*Dug 7 javascript buffer cloudflare-workers
我不太熟悉缓冲区及其工作原理。
在节点我可以做
const str = "dasjkiodjsiodjpasiodfjodifjaspiofjsdioajfpasodfjsdioa";
let buff = Buffer.from(str); // <Buffer 64 61 73 6a 6b 6 etc...
let buffHex = Buffer.from(str, 'hex');
console.log(buff)
Run Code Online (Sandbox Code Playgroud)
我将如何在 Cloudflare Workers 中执行此操作,因为我得到ReferenceError: Buffer is not defined
Ken*_*rda 11
Buffer是一个节点 API。Cloudflare Workers 基于 Web 平台 API,就像您在浏览器中找到的那样。网络平台的替代方案Buffer是Uint8Array. 您可以使用TextEncoder和TextDecoderAPI 在 UTF-8 编码的 s 和文本字符串之间进行转换Uint8Array。
let bytes = new TextEncoder().encode(str);
Run Code Online (Sandbox Code Playgroud)
要将 a 转换Uint8Array为十六进制,您可以使用如下函数:
function bytes2hex(bytes) {
return Array.prototype.map.call(bytes,
byte => ('0' + byte.toString(16)).slice(-2)).join('');
}
Run Code Online (Sandbox Code Playgroud)
我不建议Buffer为此使用polyfill,因为它会增加你的代码大小。直接使用比较好Uint8Array。
一般来说,您应该能够在 Stack Overflow 上找到有关如何执行常见操作的答案Uint8Array。
| 归档时间: |
|
| 查看次数: |
4087 次 |
| 最近记录: |