Uno de los aspectos más importantes de la creación de API es definir y manipular rutas. Las rutas son los caminos que toman los usuarios o clientes de una API para acceder a diferentes recursos o funcionalidades. En NodeJS, utilizamos ExpressJS, un marco minimalista y flexible, para manejar rutas de manera eficiente. Una de las características más poderosas de ExpressJS es la capacidad de utilizar middleware en rutas. Exploremos esta funcionalidad en detalle.
¿Qué son los middlewares?
En términos simples, los middlewares son funciones que tienen acceso al objeto de solicitud (req), al objeto de respuesta (res) y a la siguiente función de middleware en el ciclo de solicitud/respuesta de la aplicación. Se utilizan para modificar req y res, o para finalizar el ciclo de solicitud/respuesta. Si un middleware no finaliza el ciclo, debe llamar a next() para pasar el control al siguiente middleware.
Uso de middlewares en rutas
El middleware en ExpressJS se puede aplicar globalmente o a rutas específicas. Para aplicar middleware a una ruta específica, simplemente páselo como argumento adicional al controlador de ruta. Por ejemplo:
app.get('/ejemplo', función middleware, (req, res) => { res.send('¡Hola mundo!'); });
En este caso, middlewareFunction es una función que se ejecutará antes que el controlador de ruta. Puede modificar el objeto req o res, o incluso finalizar la solicitud y enviar una respuesta.
Ejemplos de middleware
Existen muchos usos prácticos para el middleware en las rutas. A continuación se muestran algunos ejemplos:
Autenticación
Un middleware de autenticación puede verificar que un usuario esté autenticado antes de permitirle acceder a una ruta. Si el usuario no está autenticado, el middleware puede finalizar la solicitud y enviar una respuesta de error. Si el usuario está autenticado, el middleware puede agregar información del usuario al objeto req para que el controlador de ruta pueda usarlo.
Validación de datos
Un middleware de validación de datos puede verificar que los datos enviados en una solicitud POST o PUT sean válidos. Si los datos no son válidos, el middleware puede finalizar la solicitud y enviar una respuesta de error. Si los datos son válidos, el middleware puede pasar el control al siguiente middleware o controlador de ruta.
Registro
Un middleware de registro puede registrar detalles sobre cada solicitud en un archivo o base de datos. Esto puede resultar útil para depurar o mantener un registro de todas las solicitudes que llegan al servidor.
Conclusión
Los middlewares proporcionan una manera poderosa de agregar funcionalidad a sus rutas en ExpressJS. Le permiten reutilizar la lógica en múltiples rutas mientras mantiene su código DRY (No se repita). Además, pueden ayudar a mejorar la seguridad de su API al garantizar que solo los usuarios autenticados puedan acceder a ciertas rutas y que los datos enviados a su API sean siempre válidos.
Espero que este capítulo le haya brindado una buena comprensión de cómo trabajar con rutas en ExpressJS y cómo usar middleware en rutas. En el próximo capítulo, profundizaremos en ExpressJS y exploraremos algunas de sus otras potentes funciones.