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

使用discord.js时遇AttachmentBuilder is not a constructor错误求助

问题排查与解决

错误原因

AttachmentBuilder is not a constructor 错误通常源于两个问题:

  • 未正确导入discord.js中的AttachmentBuilder类
  • 参数传递格式不符合discord.js v14+的规范

解决方法

1. 确认导入正确

根据你的项目模块系统,在代码顶部添加对应导入语句:

  • ES模块(使用import/export):
import { AttachmentBuilder } from 'discord.js';
  • CommonJS模块(使用require):
const { AttachmentBuilder } = require('discord.js');

2. 修正参数写法

discord.js v14+ 调整了AttachmentBuilder的参数结构,不能直接将Buffer作为第一个参数传入,正确写法有两种:

方式一:链式调用设置属性

const attachment = new AttachmentBuilder()
  .setFile(canvas.toBuffer('image/png'))
  .setName('DNI.png');

await interaction.reply({ files: [attachment] });

方式二:直接传入配置对象

const attachment = new AttachmentBuilder({
  attachment: canvas.toBuffer('image/png'),
  name: 'DNI.png'
});

await interaction.reply({ files: [attachment] });

3. 额外验证步骤

  • 执行以下命令确认discord.js版本为v14及以上:
npm list discord.js
  • 打印canvas.toBuffer('image/png')的输出,确认结果为Buffer类型,避免canvas生成无效数据

内容的提问来源于stack exchange,提问作者Víctor Escobar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:22:06