Ожидание dTypeError [ERR_INVALID_ARG_TYPE]: аргумент "id" должен иметь тип string. Получил неопределенный - PullRequest
0 голосов
/ 27 апреля 2020

Я пишу диск-бот, используя библиотеку 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
}

1 Ответ

0 голосов
/ 27 апреля 2020

Вы должны научиться отлаживать, тем более что эта ошибка практически подсказывает вам ответ. Он сказал вам, какая линия? Если так, то ваш ответ есть, но в противном случае он не был:

  1. Сообщает вам недействительный аргумент arg, это означает, что вы вызвали функцию (включая новый класс), а переданные вами аргументы были недействительными
  2. Аргумент не определен

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, требуется только один аргумент, идентификатор, и вы передаете его args[0], поэтому, чтобы проверить, если это проблема, просто проверьте, есть ли у вас аргументы

для new VultrexDB и messageData.get они основаны на VultrexDB и поддерживают его, поэтому просто посмотрите руководство или документацию, если они есть.

...