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

954
Views
Evite el bloqueo de la aplicación después del error: getaddrinfo ENOTFOUND en GetAddrInfoReqWrap.onlookup

Estoy usando Node.js 7.8.0 y estoy tratando de enviar una solicitud HTTP a algún host, a veces el host deseado no existe. En tal caso, recibo el siguiente mensaje:

 events.js:163 throw er; // Unhandled 'error' event ^ Error: getaddrinfo ENOTFOUND js.js js.js:80 at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:73:26) Press any key to continue...

donde js.js es la demostración de host inexistente. Es importante tener en cuenta que todo funciona correctamente si envío la misma solicitud al host existente.

El problema es que este error provoca el bloqueo de mi aplicación Node.js, mientras que necesito mantener la aplicación en ejecución.

Ya verifiqué, mi solicitud HTTP no contiene http / https / port en el campo de host .

Traté de usar los enfoques try/catch , domains y res.on('error', exitHandlerCB) , nada funciona. La única forma que funcionó para mí es process.on('uncaughtException', exitHandlerCB); , pero este lleva a la detención de mi aplicación Node.js.

¿Hay alguna forma de detectar el error debido a una solicitud a un host no existente y continuar con el flujo de la aplicación?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

¿Hay alguna forma de detectar el error debido a una solicitud a un host no existente y continuar con el flujo de la aplicación?

Sí, lo que necesita es escuchar el evento de error en el objeto de solicitud. El código de ejemplo sería:

 let http = require('http'); let clientRequest = http.get({ hostname: 'www.not-exist-i9io90o9i8.com', port: 80, path: '/' }, function (res) { console.log(res); }); clientRequest.on('error', function(){ console.log('error handler'); }); //...further operation

Según el documento http de Node.js :

Si se encuentra algún error durante la solicitud (ya sea con la resolución de DNS, errores de nivel de TCP o errores de análisis HTTP reales), se emite un evento de 'error' en el objeto de solicitud devuelto. Al igual que con todos los eventos de 'error', si no se registran oyentes, se generará el error.

El error detectado en su caso es un error with DNS resolution .

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!