我正在使用discord.js
v12.2.0库编写一个discord机器人,但出现此错误:
等待dTypeError [ERR_INVALID_ARG_TYPE]:“ id”参数必须为字符串类型。收到未定义
这是我的代码:
const { MessageEmbed } = require("discord.js");
const { VultrexDB } = require("vultrex.db");
const messageData = new VultrexDB({
name: "messages"
})
module.exports.run = (client, message, args) => {
const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
const messages = messageData.get(`${message.guild.id}-${member.id}`, 0);
message.chanel.send(new MessageEmbed()
.setColor("E67E22")
.setAuthor(`Data | ${member.user.username}`, member.user.displayAvatarURL())
.addField("Messages Sent:", messages, true)
);
}
module.exports.help = {
name: "messages",
description: "view the amount of messages sent by a member"
}
module.exports.requirements = {
clientPerms: ["EMBED_LINKS"],
userPerms: [],
ownerOnly: false
}
答案 0 :(得分:0)
您应该学会调试,尤其是因为该错误实际上告诉您答案。它告诉你哪条线了吗?如果是这样,那么您的答案是正确的,但如果没有,就可以这样做:
new VultrexDB
,message.mentions.members.first
,message.mentions.members.cache.get
,
messageData.get
,new MessageEmbed
,
setColor
,setAuthor
,addField
您可以排除MessageEmbed and
message.mentions.members.first since they don't require any arguments,
setColor ,
setAuthor , and
addField`都是自变量
new VultrexDB
,message.mentions.members.cache.get
和messageData.get
的
对于message.mentions.members.cache.get
,它只需要一个参数,即id,然后将其传递给args[0]
,因此要检查是否是问题,只需检查是否有args
对于new VultrexDB
和messageData.get
,它们是基于VultrexDB并对其进行idk的,因此,如果有指南或文档,则请看一下。