Я очень новичок в API, но я довольно успешно экспериментировал с пользовательской страницей погоды, которая работает на Yahoo Weather API. Проблема заключается в обработке неправильного ввода. Если конечный пользователь отправляет строку местоположения, которая по какой-либо причине считается неприемлемой, ответ представляет собой пустую страницу, на которой нет ничего, кроме слов «Внутренняя ошибка сервера». Я пытаюсь выполнить проверку if/else для неопределенного объекта ответа, но приложение продолжает двигаться вперед, несмотря ни на что. Вот мой код:
request.get(
'https://weather-ydn-yql.media.yahoo.com/forecastrss?location=' + location + '&format=json',
null,
null,
function (err, data, result) {
if (err) {
console.log(err);
return;
} else {
let parsedData = JSON.parse(data);
if (parsedData === undefined) { // this doesn't catch it
// stop app and throw some sort of error
} else {
...// continue running app
}
Вот внутренняя ошибка консоли, которую я продолжаю получать, если отправлен неверный ввод:
TypeError: /workspace/web-dev-workshop/YahooWeatherAPI/YahooWeatherApp/views/home.ejs:29
27| <% } %>
28|
>> 29| <% weatherCode = parsedData["current_observation"]["condition"]["code"]; %>
30|
31| <!-- Location Form -->
32| <section id="location">
Cannot read property 'code' of undefined
Ищете какие-нибудь предложения о том, как я могу сделать так, чтобы страница вообще ничего не делала и просто обновлялась с пустым полем ввода, чтобы конечный пользователь мог попробовать еще раз, или, возможно, перенаправить их на страницу с ошибкой со ссылкой, чтобы вернуться и повторить попытку? Что проще всего. - Заранее спасибо за любые полезные советы, которые вы можете предоставить, ребята.