discord.js报TypeError: 无法读取undefined的channels属性如何解决
报错原因
TypeError: Cannot read property 'channels' of undefined 报错的核心是execute函数接收的client参数为undefined,根因是你在主文件调用该命令的execute方法时,没有正确传递client实例作为第三个参数。
修复方案
这里提供两种可选修复方式,按需选择即可:
- 方式一:修改主文件的命令调用逻辑(适用需要统一传参的场景)
找到你主文件(通常为index.js/bot.js)中监听消息事件、调用命令execute的代码,补传client参数:
// 原错误的调用写法示例 command.execute(message, args) // 修改为补传第三个参数client command.execute(message, args, client)
- 方式二:直接通过message对象获取client实例(更稳妥,无需修改主文件逻辑)
discord.js的message对象本身已挂载client实例,直接修改你send命令里的报错行即可:
// 原错误行 client.channels.cache.get('877718113976746015').send(sendEmbed); // 修改为 message.client.channels.cache.get('877718113976746015').send(sendEmbed);
额外优化点
你当前代码中存在拼写错误,会导致动态头像不生效,可同步修复:
将.setThumbnail(message.author.displayAvatarURL({ dyanmic: true }))中的dyanmic改为正确拼写dynamic。
内容的提问来源于stack exchange,提问作者giggleshotter
相关产品推荐
相关产品推荐

