@anubis465

Как исправить код?

Есть код:
const google = require('google');

exports.run = async (client, message, args, level) => { // eslint-disable-line no-unused-vars
  try { 
    if (!args[0]) return message.reply('Вам нужно ввести что-нибудь для поиска!');
    google.resultsPerPage = 5;

    google(args.join(' '), async (err, res) => {
      
      if (err) return message.channel.send('Это ошибка!\n' + err);
      
      if (!res.links[0].href) return message.reply('Я мог бы найти что-нибудь по вашему запросу!');
      
      let output = '';
      let i = 1;
      
      res.links.forEach(async (l) => {
        output += '\n' + i + '. ' + l.title;
        i++;
      });
      
            
      let page = await client.awaitReply(message, `Пожалуйста, выберите желаемый результат${output}`);
      if (isNaN(page)) return message.reply('Это\'не номер!');
      let pagenum = Number(page) - 1;
      
      let link = res.links[pagenum];
      
      let embed = new client.Embed('normal', {
        title: link.title,
        url: link.href,
        footer: link.href,
        description: client.truncate(link.description, 2000)
      });
      
      message.channel.send(embed);
    });
  } catch (err) {
    message.channel.send('Это ошибка!\n' + err).catch();
  }
};


exports.help = {
  name: 'google',
  category: 'General',
  description: 'Returns an animation of how to google somthing',
  usage: 'google <query>'
};


При выполнении выдаёт ошибку:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'href' of undefined


Как это можно исправить? Нашел код на гитхабе и не очень понимаю как работает.
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
Зачем вы еще раз создаете тот же самый вопрос? и что стало с предыдущим?
Хотя пометка "нашел код, ничего не понимаю" многое объясняет. Это не тот сайт где кто-то будет за вас чинить код который вы где то нашли.

Ошибка значит что у вас объект у которого вы пытаетесь получить href не определен. чтобы это исправить надо либо добавить проверок что делать в таком случае либо разобраться почему там undefined.
Дальше попробуйте разобраться самостоятельно.
Ответ написан
@dimoff66
Кратко о себе: Я есть
res.links очевидно пустой, не знаю как насчет верной логики, но чтобы не выдавало ошибку напишите вместо строки с ошибкой

if (!res.links.length || !res.links[0].href) 
  return message.reply('Я мог бы найти что-нибудь по вашему запросу!');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы