Не удается прочитать свойство ‘inviter’ неопределенного

#node.js #discord.js

#node.js #discord.js

Вопрос:

Я получаю Cannot read the property 'inviter' of undefined ошибку, и я не совсем уверен, почему. Вот мой код:

 Client.on('guildMemberAdd', async (member) => {
  const cachedInvites = GuildInvites.get(member.guild.id);
  const nweInvites = await member.guild.fetchInvites();

  GuildInvites.set(member.guild.id, nweInvites);
  try {
    const usedInvites = nweInvites.find(
      (inv) => cachedInvites.get(inv.code) < inv.uses
    );
    const embed = new Discord.MessageEmbed()
      .setDescription(
        `${member.user.tag} is the ${member.guild.memberCount}th member. nInvited by ${usedInvites.inviter.username} nNumber of uses: ${usedInvites.uses}`
      )
      .setTimestamp()
      .setColor('YELLOW');

    const WelcomeChannel = member.guild.channels.cache.find(
      (channel) => channel.id === '704908658068422698'
    );
    WelcomeChannel.send(embed).catch((err) => {
      console.log(err);
    });
  } catch (err) {
    console.log(err);
  }
});

Client.login();
  

Я пытаюсь создать бота-менеджера приглашений. Буду признателен за любую помощь, спасибо!

Комментарии:

1. вот в чем проблема, usedInvites.inviter.username вы не получаете usedInvites

Ответ №1:

Что вы можете сделать, так это справиться с этой ситуацией, защитив свой код.

 try {
  const usedInvites = nweInvites.find(
    (inv) => cachedInvites.get(inv.code) < inv.uses
  );

  if (!usedInvites) {
    return;
  }

  const embed = new Discord.MessageEmbed()
    .setDescription(
      `${member.user.tag} is the ${member.guild.memberCount}th member. nInvited by ${usedInvites.inviter.username} nNumber of uses: ${usedInvites.uses}`
    )
    .setTimestamp()
    .setColor('YELLOW');

  const WelcomeChannel = member.guild.channels.cache.find(
    (channel) => channel.id === '704908658068422698'
  );
  WelcomeChannel.send(embed).catch((err) => {
    console.log(err);
  });
}
  

Я добавил: if (!usedInvites) return; но вы можете выполнить любое действие, которое вам нужно.