Logo Studenta

Qué es el patrón de diseño Middleware en Express

¡Estudia con miles de materiales!

Vista previa del material en texto

¿Qué es el patrón de diseño Middleware en Express.js? 
 
El patrón de diseño Middleware en Express.js es una característica clave y poderosa que permite 
agregar funciones intermediarias entre la solicitud del cliente y la respuesta del servidor. Cada 
función de middleware puede realizar tareas adicionales, modificar la solicitud o la respuesta, y 
pasar el control al siguiente middleware o a la ruta final. 
 
En Express.js, el middleware se puede utilizar para realizar diversas tareas, como autenticación, 
autorización, manejo de errores, registro de solicitudes, compresión de datos, entre otras. Cada 
función de middleware recibe tres parámetros: `req` (objeto de solicitud), `res` (objeto de respuesta) 
y `next` (función que permite pasar al siguiente middleware). 
 
La estructura general de un middleware en Express.js se ve así: 
 
Javascript -------------------------------------------------------------------------------------------------------- 
const express = require('express'); 
const app = express(); 
 
// Middleware 
app.use((req, res, next) => { 
 // Realiza tareas adicionales o modificaciones en la solicitud o respuesta 
 // Llama a next() para pasar al siguiente middleware o a la ruta final 
}); 
 
// Ruta 
app.get('/ruta', (req, res) => { 
 // Controlador para la ruta '/ruta' 
}); 
 
// Iniciar servidor 
app.listen(3000, () => { 
 console.log('Servidor iniciado en el puerto 3000'); 
}); 
--------------------------------------------------------------------------------------------------------------------------- 
 
Los middlewares se agregan utilizando la función `use()` de `express`. Es importante tener en cuenta 
el orden en el que se agregan los middlewares, ya que se ejecutan en el mismo orden en que fueron 
agregados. Esto significa que si tienes múltiples middlewares, el primero será ejecutado primero, 
luego el segundo, y así sucesivamente. 
 
Un ejemplo práctico sería un middleware que registra todas las solicitudes que llegan al servidor: 
 
Javascript -------------------------------------------------------------------------------------------------------------- 
const express = require('express'); 
const app = express(); 
 
// Middleware de registro de solicitudes 
app.use((req, res, next) => { 
 console.log(`[${new Date().toLocaleString()}] ${req.method} ${req.url}`); 
 next(); // Pasar al siguiente middleware o ruta 
}); 
 
// Ruta de ejemplo 
app.get('/', (req, res) => { 
 res.send('¡Hola, mundo!'); 
}); 
 
// Iniciar servidor 
app.listen(3000, () => { 
 console.log('Servidor iniciado en el puerto 3000'); 
}); 
--------------------------------------------------------------------------------------------------------------------- 
 
En este ejemplo, cada vez que llega una solicitud al servidor, el middleware registra la fecha, el 
método y la URL de la solicitud en la consola antes de pasar al siguiente middleware o a la ruta final. 
Esto permite realizar un seguimiento de todas las solicitudes que llegan al servidor, lo que puede ser 
útil para fines de depuración y monitoreo. 
 
El patrón de diseño Middleware en Express.js es una característica poderosa que permite a los 
desarrolladores modularizar la lógica de manejo de solicitudes y separar diferentes tareas en 
funciones reutilizables y fáciles de mantener. Esto hace que el código sea más limpio y estructurado, 
y facilita la implementación de características adicionales en una aplicación web construida con 
Express.js.

Continuar navegando