Я думаю, что вы все еще хотите показать пользователю что-то в этих случаях, поэтому вы хотите предоставить что-то для рендера независимо.Если есть подлинная ошибка, а не просто ответ 404, вы, вероятно, захотите настроить регистрацию ошибок для них.Когда он возвращает «Не найден» из-за того, что он запросил несуществующий город, вы можете отправить сообщение типа «город не найден», чтобы они знали, что могут попробовать другой ввод.
Что-то вроде этого обеспечивает объект weather_data
своему клиенту, даже если это не совсем данные о погоде, чтобы он знал, что происходит, и одновременно обрабатывал вещи на сервере.
request(url, function(error, response, body) {
data = JSON.parse(body);
if (error) {
// TODO: log this error somewhere
let weather = {
city: 'something went wrong',
temp: '',
desc: ''
}
} else if (response.statusCode === 200){
let weather = {
city: data.name,
temp: Math.floor(data.main.temp),
desc: data.weather[0].description
};
} else if (response.statusCode === 404){
let weather = {
city: 'city not found',
temp: '',
desc: ''
};
}
var weather_data = { weather: weather };
res.render("index", weather_data);
});