TypeError: невозможно прочитать свойство 0 из undefined в NODEJS

Я новичок в программировании и использую JavaScript. Я пытаюсь вывести результат запроса на консоль, но он все равно выдает ошибки. Смотрю по видео и со стороны репетитора он работает нормально. Что я делаю неправильно? Пожалуйста, выручайте меня. NB: не настоящий ключ

request({
   url: 'https://maps.googleapis.com/maps/api/geocode/json?address=Lagos+Nigeria&key=AIzaSyCGv0HDQB2dhHl6mY29PwqXAavIK3U',
   JSON: true
}, (error, response, body) => {
    console.info(`Address: ${body.results[0].formatted_addresss}`);
    console.info(`Latitude: ${body.results[0].geometry.location.lat}`);
    console.info(body.results[address_components]);
});
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
98
2

Ответы 2

попробуйте изменить аргумент "тело" на "ответ"

request({
   url: 'https://maps.googleapis.com/maps/api/geocode/json?address=Lagos+Nigeria&key=AIzaSyCGv0HDQB2dhHl6mY29PwqXAavIK3U',
   JSON: true
}, (error, response, body) => {
console.info(`Address: ${response.results[0].formatted_addresss}`);
console.info(`Latitude: ${response.results[0].geometry.location.lat}`);
});

может у тебя внутри ничего нет

Googleapi отлично работает. Его выходные данные Результаты, адрес, геометрия, широта, долгота и т. д. Я хочу иметь возможность запрашивать их и выводить на консоль

Sodiq Highd Idowu 28.12.2018 13:29

попробуйте изменить аргумент "тело" на "ответ"

Vadim Hulevich 28.12.2018 13:31

Ваш код, вероятно, правильный, но он не «спасает».

Ваша конкретная проблема заключается в том, что ключ API, указанный вами в качестве параметра key, недействителен. Если вы вставите URL-адрес в браузер и нажмете Enter, вы увидите следующий ответ:

{
   "error_message" : "The provided API key is invalid.",
   "results" : [],
   "status" : "REQUEST_DENIED"
}

Я предполагаю, что вы скопировали API-ключ из видео репетитора. В этом случае теперь он может быть недействительным. Вам следует запросить свой ключ и попробовать еще раз.


О части кода небезопасный: ваш код ложно предполагает, что запрос всегда будет возвращать данные, которые вы ожидаете. В данном случае это не так (потому что произошла ошибка). Полученные данные не выглядят так, как ожидает ваша программа, поэтому происходит сбой.

Чтобы избежать этого и получить более конкретное сообщение об ошибке, проверьте, действительно ли результат выглядит так, как вы ожидаете. Например:

(error, response, body) => {
  if (response.statusCode >= 200 && response.statusCode < 300) {
    // HTTP Status code indicates success
    if (body.status === "OK") {
      console.info(`Address: ${body.results[0].formatted_addresss}`);
      console.info(`Latitude: ${body.results[0].geometry.location.lat}`);
      console.info(body.results[address_components]);
    } else {
      // API-specific error. Check documentation for more info
    }
  } else {
    // The request was successful but the server responded with an error. Handle it!
  }
};

Документация по API расскажет, чего ожидать от поля status и как действовать в различных случаях.

Я вынул несколько букв в ключе, поскольку предполагаю, что он должен быть личным для меня (больше похожим на пароль). Однако ключ работает нормально и предоставляет информацию из URL. Я только хочу иметь возможность запрашивать эту информацию в консоли. Из предложенного выше кода видно, что ошибка возникает из-за ошибки API.

Sodiq Highd Idowu 28.12.2018 21:30

@SodiqHighdIdowu Хорошо, в следующий раз вы должны упомянуть об этом в своем вопросе. Кроме того, добавьте вывод, который вы получаете к своему вопросу, пожалуйста.

Lukas Knuth 28.12.2018 21:50

Другие вопросы по теме