Desarrollador Node.js: pregunta de entrevista

¿Cómo gestionas errores en código asíncrono de Node.js?

Espera promesas dentro de try/catch en el límite que pueda recuperarse, propaga rechazos, añade un handler terminal al trabajo en segundo plano y centraliza errores HTTP sin ocultar causas ni responder dos veces.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Los errores en código asíncrono viajan como promesas rechazadas, y un rechazo que nadie espera ni captura se convierte en un unhandledRejection que en Node moderno tumba el proceso por defecto. La regla es que cada promesa termina en un await dentro de try/catch, en un .catch, o se devuelve a un llamador que hace una de las dos cosas. La recuperación ocurre en la capa que puede actuar: un handler de solicitud traduce a un estado HTTP una vez, un ejecutor de jobs decide reintentar, una tarea de fondo registra y reporta. Al envolver se conserva el original como causa. Los callbacks de emisores de eventos y streams necesitan sus propios listeners de error porque no se convierten en promesas solos.

Ejemplo

Un handler de Express espera la llamada al servicio dentro de un helper que reenvía rechazos a next(err), y un único middleware de errores traduce NotFoundError a 404 y todo lo demás a 500 con ID de solicitud, registrando una sola vez. Un refresco de caché sin espera se escribe como refresh().catch(report) para que un fallo quede registrado en lugar de tumbar el proceso.

Errores frecuentes

  • Olvidar el await de una promesa dentro de try/catch, de modo que el catch nunca corre.
  • Capturar un error, registrarlo y enviar dos respuestas cuando el handler continúa.
  • No añadir listener de error a un stream y caer con el primer EPIPE.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Node.js