I am creating a helper function to get weather data using open-weather api
require("dotenv").config();
import axios from "axios";
export const getWeatherData = async (cityName: any) => {
  let getData = {};
  try {
    const response = await axios.get(
      `https://api.openweathermap.org/data/2.5/weather?q=${cityName}&appid=${process.env.WEATHER_API_KEY}&units=metric`
    );
    const data = await response.data;
    getData = {
      forecast: data.weather[0].description,
      cityName: data.name,
      coordinate: data.coord,
    };
    return getData;
  } catch (err) {
    // console.log("Something Wrong!! Try again later.");
    console.log(err);
  }
};
This function receives a cityName. now I am calling this function on another file to get data
app.get("/weather", (req, res) => {
  if (!req.query.location) {
    return res.send({
      error: "You must give an address",
    });
  }
  const data = getWeatherData(req.query.location);
});
Here in data variable is showing that it is promise rather than object that I return from getWeatherData function.
How can I get the object that I want to get from getWeatherData?
 

 
    
Top comments (2)
Yes, since getWeatherData() is a promise you need to
awaitfor it or usethento get data out of it.For eg:
OR
I tried this. But there was slight mistake in my code. Thank you♥️