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

Discord.js启动报错TypeError [CLIENT_MISSING_INTENTS]如何解决

报错根因

discord.js v13及以上版本初始化Client时强制要求传入合法的intents配置,你的代码存在两个核心问题:

  • 重复导入discord.js、重复创建了两个Client实例
  • 第一个client实例虽然传了intents配置,但全程没有被使用;第二个bot实例初始化时没传任何配置参数,缺少必填的intents字段,且你最终调用登录方法用的就是这个有问题的bot实例,直接触发CLIENT_MISSING_INTENTS报错。
修复步骤
  • 删除冗余的重复导入、重复实例化代码,只保留一个配置了正确intents的Client实例
  • 确认本地安装的discord.js版本和你参考的教程版本一致:v12及以前版本不需要传intents,v13+强制要求,版本不匹配会连续出现兼容性问题。可在项目目录执行npm ls discord.js查看本地安装版本
  • 如果你需要机器人读取消息内容,除了在代码里添加MESSAGE_CONTENT intent,还要去Discord开发者门户的机器人配置页,打开「Message Content Intent」的开关,否则机器人无法接收普通用户发送的消息内容。
修正后可运行代码
const { Client, Intents } = require('discord.js');

// 单个Client实例,传入需要的intents
const client = new Client({ 
  intents: [
    Intents.FLAGS.GUILDS, 
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.MESSAGE_CONTENT // 需要读消息内容就加这个配置
  ] 
});

const token = '替换为你自己的机器人Token';
const PREFIX = '';

client.on('ready', () => {
  console.log('SEBot is online.')
})

// 用配置完成的client实例登录
client.login(token)
注意事项
  • 绝对不要把机器人Token泄露给其他人,持有Token的用户可以完全控制你的机器人执行任意操作
  • 如果参考的教程发布时间早于2021年8月,大概率是基于discord.js v12编写的,和当前最新版本语法差异极大,建议找对应你本地安装版本的官方文档或匹配教程参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:18:34