运行Discord bot时报ReferenceError: Discord is not defined错误如何解决?
问题根因
你没有将Collection类从discord.js中导入,也没有将整个discord.js包赋值给Discord变量,因此调用Discord.Collection时会抛出ReferenceError: Discord is not defined错误。
你第一行的导入语句仅解构了Client、Intents、DiscordAPIError三个类,未包含你需要用到的Collection,也没有定义过Discord这个变量。
解决方案
方案一(推荐,按需导入)
- 修改首行导入语句,将
Collection加入解构列表:
const { Client, Intents, DiscordAPIError, Collection } = require('discord.js');
- 将报错的第10行修改为:
client.commands = new Collection();
该写法资源占用更低,也是当前discord.js v13及以上版本的常用写法。
方案二(兼容旧教程写法)
如果你需要和原教程的Discord.xxx调用格式保持一致,可以将整个discord.js包导入为Discord对象:
替换原前两行代码为以下内容即可:
const Discord = require('discord.js'); const client = new Discord.Client({ intents: [Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES] });
修改后原new Discord.Collection()的代码不需要改动即可正常运行。
修改完成后重新启动代码,该报错就会消失,后续的命令文件加载逻辑也可以正常执行。
内容的提问来源于stack exchange,提问作者ThEquinox2
相关产品推荐
相关产品推荐

