Middlewares y manejo de errores
Los middlewares son funciones que se invocan en cada petición HTTP y permiten implementar funcionalidades transversales, es decir, que aplican a varias rutas como autenticación, logging, compresión y manejo de errores, entre otros.
En Express los middlewares son particularmente importantes y se utilizan para tareas como leer el cuerpo del mensaje, servir archivos estáticos (como lo vimos en el capítulo de rutas) y manejo de cookies, entre otros.
Veamos un primer ejemplo. Vamos a escribir un middleware que imprime "Nueva petición HTTP" cada vez que recibimos una petición:
Un middleware recibe 3 parámetros: el objeto request
, el response
y una función next
que debemos invocar para que continúe la cadena de middlewares.
Para configurar un middleware se utiliza el método use
:
El orden en el que se configuren los middlewares es importante, se ejecutan en el orden en que se configuran.
Middlewares incluídos en Express
A la fecha (Diciembre 2017) Express viene con 3 middlewares incluídos:
express.static para servir archivos estáticos.
express.json para leer peticiones JSON.
express.urlencoded para leer peticiones URL-encoded.
De los dos últimos vamos a hablar en próximos capítulos.
También existen paquetes externos con middlewares, algunos son soportados oficialmente por Express.
Manejo de errores
Para manejar errores que ocurran durante una petición puedes definir un middleware que reciba cuatro argumentos. Por ejemplo:
Los middlewares de error se deben ubicar al final de otros middlewares. El formato que utilices es decisión tuya, puede ser una página HTML con el error, un mensaje simple como el ejemplo anterior, o un JSON.
Last updated