为啥我的机器人的 message.js 一直向我发送相同的错误,我该如何解决?
Posted
技术标签:
【中文标题】为啥我的机器人的 message.js 一直向我发送相同的错误,我该如何解决?【英文标题】:How come my bot's message.js keeps sending me the same error, and how do I fix it?为什么我的机器人的 message.js 一直向我发送相同的错误,我该如何解决? 【发布时间】:2021-09-28 06:24:45 【问题描述】:因此,我目前正在使用 Discord.js 开发 Discord 机器人,但由于某种原因,我不断收到与以前从未遇到过的错误完全相同的错误,而且我对 Discord.js 还比较陌生。这是错误:
无法读取未定义的属性“startsWith”
这是我正在使用的代码:
require('dotenv').config();
module.exports = (client, message, Discord) =>
const prefix = (process.env.PREFIX);
if(!message.content.startsWith(prefix) || message.author.bot) return; // The line I get the error on.
const args = message.content.slice(prefix.length).split(/ +/);
const cmd = args.shift().toLowerCase();
const command = client.commands.get(cmd) ||
client.commands.find(a => a.aliases && a.aliases.includes(cmd));
try
command.execute(client, message, args, Discord);
catch(err)
const ErrorEmbed = new Discord.MessageEmbed()
.setColor('#e6b981')
.setTitle(`There was an error trying to execute this command!`);
message.reply(ErrorEmbed);
console.log(err);
代码应 MrMythical 的要求放置
const fs = require('fs');
module.exports = (client, message, Discord) =>
const load_dir = (dirs) =>
const event_files = fs.readdirSync(`./events/$dirs`).filter(file => file.endsWith('.js'));
for(const file of event_files)
const event = require(`../events/$dirs/$file`);
const eventName = file.split('.')[0];
client.on(eventName, event(client, message, Discord));
['client', 'guild'].forEach(e => load_dir(e));
如果可以的话请帮忙!
【问题讨论】:
我认为 message.content 没有任何名为startsWith的函数。你能验证一下吗? 【参考方案1】:您执行此功能的方式不正确。在您执行 message.js 的文件(可能是 index.js)中,您很可能错误地传递了参数。
确保您像这样传递它们:
(client, message, Discord)
client 是你 index.js 中Client
的实例,message 是你的消息监听器中Message
的实例,Discord 是模块 discord.js。
我是怎么想出来的?每条消息都有一个content
属性,它是一个字符串。每个字符串都有一个 startsWith
函数,但 message.content
未定义。这意味着message
不是Message
的实例
【讨论】:
我正在使用一种叫做“event_handler.js”的东西来发送客户端,而我刚刚向它添加了消息,但现在我得到“无法读取未定义的属性'内容'” 你能把那个文件编辑成你的问题吗? 我将其添加到问题中。 你就不能event(client, message, args)
吗?
我们可以通过 Discord 处理这个问题吗?以上是关于为啥我的机器人的 message.js 一直向我发送相同的错误,我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
关于黄海广博士所创 “机器学习爱好者” 项目及其网站的详细说明
有人可以向我解释为啥我的 django 管理主题是黑暗的吗?