如何从Node.js 18 Fetch API返回的Blob获取Node.js Buffer?
从Fetch获取Buffer或实现Blob到Buffer的转换
在Node.js环境中(Buffer是Node.js专属类型),你可以通过两种方式实现需求:
1. 直接从Fetch响应生成Buffer(推荐)
不需要先转换成Blob,直接将响应转为ArrayBuffer后,用Buffer.from()包装成Node.js的Buffer,能减少一次转换开销:
const buffer = await fetch("https://example.com/image.png") .then(res => res.arrayBuffer()) .then(ab => Buffer.from(ab));
2. 将已有的Blob转换为Buffer
如果已经拿到了Blob对象,先把Blob转为ArrayBuffer,再转成Buffer即可:
// 假设已有blob实例 const arrayBuffer = await blob.arrayBuffer(); const buffer = Buffer.from(arrayBuffer);
注意:浏览器环境本身没有
Buffer类型,若你在浏览器中需要适配期望Buffer的库,通常可以直接传入ArrayBuffer替代,或者使用库提供的适配方法转换。
内容的提问来源于stack exchange,提问作者Lumin
相关产品推荐
相关产品推荐

