Una excepción y chau proceso
Bueno, no sé si te pasó antes, pero si ocurre una excepción no manejada, corta el proceso 😛
Por ejemplo: tenemos nuestro WebServer genial corriendo en NodeJS y algo se nos pasó, algo que no esperabamos o alguna libreria explotó … chau server, se cae el proceso de NodeJS y por lo tanto nuestro WebServer muere con el
Eso no suena nada bien …
Fuera de que el try y el catch son nuestros amigos, cometemos errores y hay situaciones en las que se nos pasa, y tampoco podemos garantizar los catcheos de excepciones de todas las librerias que usamos.
Entonces, cual sería el nivel más alto para poner un try catch?: el objeto global process … ahí es cuando aparece un gran y maravilloso “try catch” para el proceso que nos puede “garantizar” (notese las comillas :P) que no se caiga al momento de explotar en mil colores:
Nos suscribimos al evento “uncaughtException” del process y a partir de ahi nos queda logear o hacer lo que creamos necesario al momento de una explosión no calculada.
Documentación de Node para Process Event Uncaughtexception
Librerías interesantes
Pero eso no es todo: como dije antes nos “garantiza”, pero entre comillas. Para estar completamente seguros tenemos alguna librerias:
- Nodemon
- Para ambiente de desarrollo, Nodemon vigila los archivos y si alguno se modifica re inicia le proceso
- Forever
- Una herramienta para asegurarnos que nuestro proceso corra por siempre, si cae vuelve arriba (se pueden configurar la cantidad de intentos y tambien usarlo dentro de la app NodeJS)
- Node Supervisor
- Basicamente hace lo mismo que las dos anteriores. Por linea de comando seteamos parámetros para vigilar, re-start onError, etc.
- LearnBoost: Up
- Otra opcion piola de parte de LearnBoost
Yo no probé ninguna y estoy con ganas de arrancar, usaste alguna de esas?, otra?