discord.js v13.1.0 报Cannot read property 'cache' of undefined错误如何解决
问题原因与解决方案
核心报错原因
报错Cannot read property 'cache' of undefined指向client.channels为undefined,由以下两个常见原因导致:
- 未开启discord.js v13要求的必备Intents
v13版本强制要求手动声明网关Intents,获取频道缓存必须开启GUILDSIntent,初始化Client时需要按以下配置声明:
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [ Intents.FLAGS.GUILDS, // 必须开启,用于获取频道、服务器等基础数据 // 其他你需要的Intent,比如GUILD_MESSAGES、DIRECT_MESSAGES等 ] });
- 代码执行时机早于Client初始化完成
client.channels会在Client完成登录、触发ready事件后才会挂载,如果你把获取频道的代码直接写在全局、或者ready事件触发前的同步代码里,就会出现client.channels为undefined的问题。请将获取频道的逻辑放到ready事件回调,或者消息事件、交互事件等仅在Client就绪后才会触发的回调函数内。
代码中存在的其他可修复问题
- 拼写错误:
quesstions多写了一个s,应为questions - 变量名错误:
Collector.stop("fulfilled")里的Collector首字母大写,和你前面定义的小写collector变量名不匹配,会触发未定义报错 - 拼写错误:
succesfully少写了一个s,应为successfully
内容的提问来源于stack exchange,提问作者Jacy Harrington
相关产品推荐
相关产品推荐

