Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

885
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda