‫Instructor: Entonces, hasta este punto del curso,
‫realmente no hemos manejado los
‫errores de una buena manera o en un lugar central en nuestra aplicación.
‫Lo que hicimos fue simplemente enviar un mensaje
‫de error como JSON en cada controlador de ruta en caso de
‫que algo saliera mal.
‫¿Derecha?
‫Eso es básicamente lo que vamos a arreglar en esta sección.
‫Pero por ahora, tomemos un
‫minuto para obtener una breve descripción general del manejo de errores en Express.
‫Y comenzamos por distinguir entre
‫dos tipos de errores que pueden ocurrir.
‫Errores operacionales y errores de programación.
‫Por lo tanto, los errores operativos son
‫problemas que podemos predecir que inevitablemente sucederán en
‫algún momento en el futuro.
‫Así que solo tenemos que manejarlos con anticipación.
‫No tienen nada que ver con errores en nuestro código.
‫En cambio, dependen del usuario, del sistema o
‫de la red.
‫Entonces, cosas como que un usuario acceda a una ruta no válida, ingrese
‫datos no válidos o una aplicación que no se conecte a la
‫base de datos.
‫Todos estos son errores operativos
‫que tendremos que
‫manejar para preparar nuestra aplicación para estos casos.
‫También verá que se usa el
‫término "excepción" en lugar de
‫error y, aunque son conceptualmente diferentes, muchas
‫personas usan los términos
‫error y excepción de manera intercambiable.
‫Y también los
‫llamaré "errores" en este curso para evitar confusiones.
‫De todos modos, por otro lado, tenemos errores de programación.
‫Que son simplemente errores que los
‫desarrolladores introducimos en nuestro código.
‫Como, por ejemplo, intentar leer
‫propiedades de una variable indefinida, usar await sin async,
‫usar request accidentalmente. consulta en lugar de solicitud. cuerpo, o muchos
‫otros errores, en realidad, que podríamos cometer.
‫Entonces, sabes cómo funciona, ¿verdad?
‫Y son realmente inevitables,
‫pero también más difíciles de encontrar y manejar.
‫Bien, entonces, es importante que comprenda esta
‫diferencia crucial entre errores operativos y
‫errores de programación.
‫Entonces, cuando hablamos de manejo de errores con Express,
‫nos referimos principalmente a errores operativos.
‫Porque estos son los que
‫son fáciles de atrapar y manejar con nuestra aplicación Express.
‫Y Express realmente viene con manejo de errores
‫listo para usar.
‫Entonces, todo lo que tenemos
‫que hacer es escribir un middleware de manejo de
‫errores expreso global que luego detectará los
‫errores provenientes de toda la aplicación.
‫Entonces, no importa si se trata de un error proveniente de
‫un controlador de ruta, o un validador de modelos o realmente, de algún otro
‫lugar, el objetivo es que todos estos
‫errores terminen en un middleware de manejo de errores central.
‫Para que podamos enviar una buena respuesta al cliente
‫informándole lo que sucedió.
‫Entonces, realmente, manejar en este caso solo significa
‫enviar una respuesta para que el usuario sepa lo que sucedió.
‫Pero el manejo también puede significar, en otros casos,
‫volver a intentar la operación o bloquear el servidor,
‫o simplemente ignorar el error por completo.
‫A veces, esa es la mejor opción.
‫Ahora, la belleza de tener un middleware de manejo de errores
‫global es que permite una buena separación de preocupaciones.
‫Por lo tanto, no tenemos que preocuparnos por
‫el manejo de errores directamente en nuestra lógica comercial o nuestros
‫controladores, o realmente en cualquier parte de nuestra aplicación.
‫Simplemente podemos enviar los errores al controlador de errores que
‫luego decidirá qué hacer con ellos a continuación.
‫¿Está bien?
‫Entonces, con todo lo
‫dicho, comencemos ahora a implementar esto.