Un truco facilisimo para prevenir que tu servidor node.js se rompa en produccion

Santiago Quinteros - CEO & CTO - Software on the road
By:
Santiago Quinteros

Has oído hablar de la "excepción no atrapada"?

El evento "uncaughtException" se emite cuando una excepción JavaScript no capturada vuelve al ciclo de eventos de node.js.

 
process.on('uncaughtException', (error)  => {
   
    console.log('Oh my god, something terrible happend: ',  error);

    process.exit(1); // salir de la aplicación

})

Entonces debemos apagar nuestra aplicación después de atrapar el error porque, no es seguro reanudar el funcionamiento normal después de "uncaughtException" ya que el sistema se podria corromper.

Pero espera! Hay más

Ademas, el evento "unhandledRejection", que se emite cuando una Promesa es rechazada y no hay ningún .catch de errores adjuntado a la misma dentro del bucle de eventos de node.js.

Cuando se programa con Promesas, las excepciones se encapsulan como "promesas rechazadas".

Los rechazos pueden ser capturados y manejados usando promise.catch() y se propagan a través de una cadena de Promesa.

El evento "unhandledRejection" es útil para detectar y llevar un registro de las promesas que fueron rechazadas y cuyos rechazos aún no han sido manejados.

process.on('unhandledRejection', (error, promise) => {
  console.log(' Oh Lord! We forgot to handle a promise rejection here: ', promise);
  console.log(' The error was: ', error );
});

Sugiero que añadas este manejador al comenzar el punto de entrada de tu aplicación.

A programar!!

Get the latest articles in your inbox.

Join the other 2000+ savvy node.js developers who get article updates. You will receive only high-quality articles about Node.js, Cloud Computing and Javascript front-end frameworks.


santypk4

CEO at Softwareontheroad.com