You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js v20.1.0下如何用require引入Blob并调用其构造函数?

解决Node.js v20中使用require引入Blob类的问题

在Node.js v20.1.0中,Blob是node:buffer模块的顶级导出成员,并非Buffer类的属性。你之前的错误在于尝试从Buffer类上访问Blob,正确的require用法如下:

正确的引入方式

方式1:解构赋值(推荐)

直接从模块中解构出Blob:

const { Blob } = require('node:buffer');

方式2:整体引入模块后访问

如果需要同时使用模块中的其他成员,可以先引入整个模块,再访问Blob属性:

const bufferModule = require('node:buffer');
// 或 const bufferModule = require('buffer'); 两者在v20中等价

使用Blob构造函数示例

// 方式1的使用示例
const { Blob } = require('node:buffer');

// 创建文本Blob
const textBlob = new Blob(['这是测试文本'], { type: 'text/plain; charset=utf-8' });
console.log('文本Blob大小:', textBlob.size); // 输出13(每个中文字符占3字节)

// 从Buffer创建Blob
const bufferData = Buffer.from('Hello Node.js');
const bufferBlob = new Blob([bufferData], { type: 'text/plain' });
console.log('Buffer转换的Blob大小:', bufferBlob.size); // 输出12

// 方式2的使用示例
const bufferModule = require('node:buffer');
const anotherBlob = new bufferModule.Blob(['多段数据', Buffer.from('二进制数据')]);
console.log('多段数据Blob大小:', anotherBlob.size); // 输出6+12=18

你之前的错误原因

你尝试的new Buffer.Blob、new Buffer.buffer.Blob等写法都是错误的,因为Blob是node:buffer模块的直接导出项,不属于Buffer类的静态属性,不能通过Buffer类去访问它。

内容的提问来源于stack exchange,提问作者Marco Faustinelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:40:02