javascript - 等待 dTypeError [ERR_INVALID_ARG_TYPE]:“id”参数必须是字符串类型。收到未定义
问题描述
我正在使用discord.js
v12.2.0 库编写一个不和谐的机器人,我收到了这个错误:
等待 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
}
解决方案
你应该学习调试,尤其是因为这个错误实际上告诉你答案。有没有告诉你是哪条线?如果是这样,那是您的答案,但如果没有:
- 告诉你参数无效,这意味着你调用了一个函数(包括一个新类),而你传入的参数是无效的
- 参数未定义
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
and messageData.get
,这些都是基于 VultrexDB 的,所以只要看看指南或文档(如果有的话)。
推荐阅读
- excel - 如果有多个,有什么方法可以让这个 VBA 代码找到下一个相同的值?
- java - 从 config.properties 中提取地图
- excel - 在函数中使用 for 循环变量
- javascript - 每次单击 HTML 和 javascript 上的按钮时,使用 TCP 向客户端发送一个值,其中每个按钮发送一个不同的值
- ruby-on-rails - 在 group_by 中,如果不同的数组数组具有相同的“nil”元素,那么它只考虑一个,但我想要所有这些
- javascript - Javascript 或 ML 中的自定义对象检测?
- python - 并发删除并放入 aws s3 存储桶
- excel - 如果嵌套在另一个公式中,如何在日期范围之间进行计数?
- oracle - 用于跨 dwh 模式识别电子邮件地址的 Oracle 查询逻辑
- powershell - Powershell:Ps1 脚本中的函数提示