Анализ данных JSON из openweathermaps. Console.log работает, но данные не будут передаваться в шаблон ejs. Я получаю сообщение об ошибке «неопределенные данные».
Просмотрел множество видеоуроков, ассистентов преподавателей, но ничего не ловило. Похоже на простую вещь, просто с видом на некоторые мелкие детали. Или, может быть, нужно полностью переписать.
app.use(function (req, res, next) {
let apiKey = "***************************";
let city = "Providence,US";
let url = `http://api.openweathermap.org/data/2.5/weather?
q=${city}&units=imperial&appid=${apiKey}`;
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
let weather = JSON.parse(body);
let data = `temp ${weather.main.temp} wind ${weather.wind.speed}
from ${weather.wind.deg}`;
res.locals.weather = data;
console.log(data);
res.locals.error = null;
next();
} else {
res.locals.data = null;
res.locals.error = "There was an error current weather data.";
next();
}
});
});
app.get("/", (req, res) => {
res.render("index", {data: data});
});
app.listen(process.env.PORT || 3000, () => {
console.log("SERVER IS RUNNING!");
});
Console.log выдает проанализированную температуру, ветер и направление. Запуск в браузере выдает ошибку "ReferenceError: данные не определены
в app.get (/workspace/UdemyWebDev/c9Backup/weatherCall/app.js:42:30) ", указывая на объект {data: data} в обратном вызове res.render.
Использование res.locals все еще остается загадкой после нескольких часов, ломая голову над этим. Любая помощь будет оценена.