Discord机器人启动报错:Cannot read properties of undefined (reading 'client') 求助排查
排查Discord机器人报错:Cannot read properties of undefined (reading 'client')
嘿,我来帮你搞定这个问题!你遇到的这个错误完全是代码里的几个小拼写和导入细节出错了,咱们一步步修正:
错误原因拆解
报错Cannot read properties of undefined (reading 'client')本质上是两个问题:
- 你导入discord.js的方式不对,导致
discord这个变量根本不存在 - 客户端实例化时的类名拼写错误(大小写问题)
修正后的完整代码
const { Client, Intents } = require('discord.js'); // 注意:discord.js v13+必须指定必要的意图,否则机器人无法正常运行 const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); client.on('ready', () => { console.log(`成功登录:${client.user.tag}`); }); client.login("你的机器人令牌");
关键修正点说明
- 导入语句修正:原代码里
const {discord, Intents} = require('discord.js');是错误的,discord.js导出的客户端类是Client(首字母大写),正确的解构导入应该是{ Client, Intents } - 客户端实例化修正:原代码
new discord.client()里,discord变量不存在,而且客户端类名应该是Client(首字母大写),所以改成new Client(...) - 添加必要意图:discord.js v13及以上版本要求必须声明机器人需要的权限意图,这里添加了
GUILDS意图,是触发ready事件的基础;如果你的机器人需要处理消息,还需要添加GUILD_MESSAGES意图(对应Intents.FLAGS.GUILD_MESSAGES)
最后提醒:记得把代码里的"你的机器人令牌"替换成你从Discord开发者平台获取的真实令牌,绝对不要把令牌公开分享给任何人!
内容的提问来源于stack exchange,提问作者Komiš
相关产品推荐
相关产品推荐

