Я делаю небольшое приложение показывающее погоду, мне нужно сделать запрос на API, первый запрос нужно сделать на координаты набраного пользователем города, а второй на погоду по этим координатам:
import express from 'express';
import axios from 'axios'
const app = express();
const PORT = 4444 | process.env.PORT;
// FETCHES ==========================================================================================
let fetchData = {
urlGeo: 'http://api.openweathermap.org/geo/1.0/direct',
urlCurrent: 'http://api.openweathermap.org/data/2.5/weather',
urlTomorrow: 'http://api.openweathermap.org/data/2.5/forecast',
token: '',
lat: '',
lon: ''
}
let today = {};
async function requestWeather(a, b) {
const res = await axios.get(fetchData.urlCurrent+`?lat=${a}&lon=${b}&lang=ru&units=metric&appid=${fetchData.token}`)
today = res.data;
}
async function requestGeo(search) {
const res = await axios.get(fetchData.urlGeo+`?q=${search}&appid=${fetchData.token}`)
fetchData.lat = await res.data[0].lat;
fetchData.lon = await res.data[0].lon;
requestWeather(fetchData.lat, fetchData.lon);
}
// SERVER ==========================================================================================
app.get('/city/:name', (req, res) => {
requestGeo(req.params.name);
res.send(today);
});
app.listen(PORT, (req, res) => {
console.log(`Server work: http://localhost:${PORT}/`)
})
Но случается странная проблема, когда делаешь запрос 1 раз ответ приходит, но не обновляются данные в объекте, на втором запросе тоже все нормально и данные в объекте обновляются, но так быть не должно, почему так происходит? 100 раз переделывал уже, всяко пытался, опыта не хватает видимо.