Я очень плохо знаком с API, но я довольно успешно экспериментировал с пользовательской страницей о погоде, работающей на основе Weather API от Yahoo. Проблема с обработкой неверного ввода. Если конечный пользователь отправляет строку местоположения, которая не считается приемлемой по какой-либо причине, ответом является пустая страница, содержащая только слова «Внутренняя ошибка сервера». Я пытаюсь выполнить проверку 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
Ищите несколько советов о том, как сделать так, чтобы страница ничего не делала вообще и просто измените sh с пустым полем ввода, чтобы конечный пользователь мог повторить попытку или, возможно, перенаправить их на страницу с ошибкой со ссылкой на go назад и повторить попытку? Что бы ни было проще. -Спасибо заранее за любые полезные советы, которые вы можете дать, ребята.