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

升级discord.js到V13后报CLIENT_MISSING_INTENTS错误怎么解决?

问题解决方法

这个报错本质是discord.js的Client实例初始化时没有接收到合法的Intents参数,根据你提供的代码,最大概率出在自定义的MongoClient类的实现上,按以下步骤排查解决:

  • 检查自定义MongoClient类的参数传递
    打开./utils/MongoClient.js文件,确认构造函数是否将接收的配置参数正确传递给父类discord.js的Client构造函数,正确示例如下:
const { Client } = require('discord.js');
class MongoClient extends Client {
  constructor(options) {
    // 必须将options传入super(),父类才能拿到intents配置
    super(options);
    // 下方保留你原本的MongoClient初始化逻辑
  }
}

如果之前调用super()时没有传入options参数,就会导致父类Client拿不到你传入的intents,直接触发该报错。

  • 开启Discord开发者后台的特权Intent
    v13版本中GUILD_MEMBERS、GUILD_PRESENCES属于特权网关Intent,你需要登录Discord开发者平台,进入对应机器人的设置页,找到「Privileged Gateway Intents」板块,将这两个Intent的开关全部打开,否则即使代码中配置了也无法正常生效。
  • 可选优化写法
    你也可以直接传入Intents标志数组,不需要手动实例化Intents对象,写法更简洁,也可以排除实例化过程的异常:
const bot = new MongoClient({ 
  intents: [
    Intents.FLAGS.GUILD_PRESENCES,
    Intents.FLAGS.GUILD_MEMBERS,
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_BANS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.DIRECT_MESSAGES,
    Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
    Intents.FLAGS.GUILD_INTEGRATIONS,
    Intents.FLAGS.GUILD_WEBHOOKS,
    Intents.FLAGS.GUILD_INVITES,
    Intents.FLAGS.GUILD_MESSAGE_TYPING,
    Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
    Intents.FLAGS.DIRECT_MESSAGE_TYPING,
    Intents.FLAGS.GUILD_VOICE_STATES,
    Intents.FLAGS.GUILD_MESSAGE_REACTIONS
  ]
});
  • 确认运行环境符合要求
    discord.js v13要求Node.js版本≥16.6.0,你可以在项目根目录的package.json中新增如下配置,强制运行环境使用符合要求的Node版本:
"engines": {
  "node": "16.x"
}

如果还是有问题,可以删除项目下的node_modules文件夹和package-lock.json文件,重新执行npm install重装依赖,排除依赖安装异常的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:06:01