Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

884
Views
Cómo resolver SyntaxError: final inesperado de la entrada JSON en JSON.parse (<anónimo>) al obtener datos JSON en NodeJs

Soy nuevo en el desarrollo de Backend. Desde los últimos días, estoy tratando de obtener una respuesta de la API y mostrarla en mi página html y recibo constantemente este error al analizar JSON. Estoy usando NodeJS con ExpressJS. ¡Cualquier ayuda sería muy apreciada!

Aquí está el error: indefinido:1 {"paginación":{"límite":100,"desplazamiento":0,"recuento":22,"total":22},"datos":[{"fecha_vuelo":" 2022-05-01","flight_status":"aterrizó","salida":{"aeropuerto":"Vadodara","timezone":"Asia/Kolkata","iata":"BDQ","icao": "VABO","terminal":null,"gate":null,"retraso":16,"programado":"2022-05-01T11:55:00+00:00","estimado":"2022-05 -01T11:55:00+00:00","real":"2022-05-01T12:10:00+00

SyntaxError: final inesperado de la entrada JSON en JSON.parse () en IncomingMessage. (C:\Users\2kwattz\Desktop\2kaerostack\server.js:31:35) en IncomingMessage.emit (nodo:eventos:390:28) en IncomingMessage.Readable.read (nodo:internal/streams/readable:527: 10) en flujo (nodo:interno/flujos/legible:1012:34) en resume_ (nodo:interno/flujos/legible:993:3) en processTicksAndRejections (nodo:interno/proceso/task_queues:83:21)

Aquí está el código:

 app.post("/airportracker", function (req, res) { let apiKey = 'somekey'; let airportiata = req.body.airportiata; let url = `http://api.aviationstack.com/v1/flights?access_key=${apiKey}&dep_iata=${airportiata}`; http.get(url, function (response) { response.on('data', function (data) { console.log(data); let flightData = JSON.parse(data); flightData = flightData.stringify(); console.log(flightData); let flightDate = flightData.data[0].flight_date; res.send(`${flightDate}`) }); }) })

Aquí está el código del formulario:

 <form class="airportracker" action="/airportracker" method="POST"> <label for="airportIata"> Enter Airport IATA </label> <input type="text" name="airportiata" id="airportiata"> <a href="#"> Psst! Don't know your Airport IATA ? Click here ! </a> <button class="btn" id="airportTrackerSubmit" type="submit"> Track Flights </button> </form>

Estaría muy agradecido si alguien me da una solución. ¡Muchas gracias de antemano!

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Supone que toda la respuesta viene con un evento data , pero esto no está garantizado, por eso termina con solo una primera parte de JSON (con un "final inesperado").

Debe estar preparado para varios eventos de data , seguidos de un solo evento end :

 var data = ""; response.on('data', function(chunk) { data += chunk.toString(); }) .on('end', function() { console.log(data); /* Rest of your code */ });

(Sin embargo, no entiendo de dónde viene el undefined:1 en su registro de errores).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!