Im trying to make a weather app and I'm using a weather API to get the information but this error shows up when I'm trying to parse the JSON data:
SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IncomingMessage.<anonymous>
edit: I need to get the lat and lon values from an https request. I tried returning it but it will still say lon and lat is undefined.
second edit: If I input the values of lon and lat It will parse the data and send back the JSON but I need the values of lon and lat from the locaionIQ API on the https request. How do I get those values? here is the code:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const https = require('https');
const { static, response } = require('express');
require('dotenv').config();
app.use(bodyParser.urlencoded({extended:true}));
app.use(express.static('public'))
app.listen(3000, ()=>{
  console.log("server is running on port 3000")
})
app.get('/', (req,res)=>{
  res.sendFile(__dirname+'/index.html')
})
app.post('/', (req,res)=>{
  
  let apiKeyLocationIQ = process.env.API_KEY_LOCATIONIQ;
  let apiKeyWeather = process.env.API_KEY_WEATHER;
  let cityLocationIQ = req.body.citySearch;
  let urlLocationIQ = "https://api.locationiq.com/v1/search.php?format=JSON&key="+apiKeyLocationIQ+"&q="+cityLocationIQ+"&limit=1";
  https.get(urlLocationIQ, function(response){
    response.on("data",function(data){
      let locationIQ = JSON.parse(data);
      const lat= locationIQ[0].lat;
      const lon= locationIQ[0].lon;
      const cityName = locationIQ[0].display_name;
    })
  })
  let urlWeather = 'https://api.openweathermap.org/data/2.5/onecall?&lat='+lat+'&lon='+lon+'&exclude=alerts,minutely&units=metric&appid='+apiKeyWeather+'&lang=en&cnt=7';
  https.get(urlWeather, function(response){
    response.on("data",function(data){
      let weatherData = JSON.parse(data);
      console.log(weatherData);
      
    })
  })
  
})