为啥我在 discord.js 中收到客户端错误
Posted
技术标签:
【中文标题】为啥我在 discord.js 中收到客户端错误【英文标题】:Why am I getting a client error in discord.js为什么我在 discord.js 中收到客户端错误 【发布时间】:2021-06-06 15:45:26 【问题描述】:我正在使用这个Discord.js Guide 在我的 discord.js 机器人中创建一个 !stats 命令。 当我使用基本命令处理程序时,这里是我的 stats.js 代码:
module.exports =
name: 'stats',
description: 'React to a message',
execute(message, client)
message.channel.send(`Server count: $client.guilds.cache.size`);
,
;
然后我收到此错误:
TypeError: Cannot read property 'cache' of undefined
at Object.execute (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\commands\Utility\stats.js:5:55)
at Object.execute (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\events\message.js:69:12)
at Client.<anonymous> (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\bot.js:30:61)
at Client.emit (events.js:315:20)
at MessageCreateAction.handle (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (E:\The Owner\Naffy Dharni\Discord\Bots\Toxado Manager\node_modules\ws\lib\event-target.js:132:16)
我能做些什么来解决这个问题?
【问题讨论】:
【参考方案1】:cache
属性之前的内容是undefined
。
所以在您的情况下,这就是 client.guilds。鉴于不能为正确的 djs 客户端对象取消定义,您在调用该文件时可能没有以正确的顺序传递值。也就是说,client
可能不是真正的 djs 客户端类/对象。
【讨论】:
【参考方案2】:您的 discord.js 版本使用什么?
在 12 版本上添加了缓存。
使用 npm i discord.js@12
或仅删除字段 cache
上的调用。
module.exports =
name: 'stats',
description: 'React to a message',
execute(message, client)
message.channel.send(`Server count: $client.guilds.size`);
,
;
【讨论】:
以上是关于为啥我在 discord.js 中收到客户端错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥我收到 ReferenceError:AbortController 未在 Discord.js v13 中定义?
为啥我的 Discord.js 欢迎消息中出现“无效的表单正文”错误?
为啥运行 app.js 显示错误:找不到模块'discord.js'
我正在尝试在 heroku 上部署我的 node.js discord 机器人,但我不断收到错误