En Node.js, puedes utilizar middlewares en Express.js para personalizar el manejo de las solicitudes HTTP antes o después de que lleguen a las rutas. En este tutorial, aprenderás a crear un middleware que extraiga las cabeceras X-REAL-IP
y x-forwarded-for de las llamadas HTTP entrantes en tu aplicación Express.
Requisitos Previos:
- Node.js instalado en tu sistema.
- Conocimiento básico de Node.js y Express.
Paso 1: Configura tu Entorno
Asegúrate de tener Node.js instalado en tu sistema. Puedes descargarlo desde el sitio web oficial de Node.js.
Paso 2: Crea una Aplicación Express
Crea una aplicación Express básica en un archivo JavaScript (por ejemplo, app.js
):
const express = require('express'); const app = express(); // ... Configura tus rutas y lógica de la aplicación aquí app.listen(3000, () => { console.log('Servidor Express en funcionamiento en el puerto 3000'); });
Paso 3: Crea un Middleware
Crea un middleware que actuará como tu interceptor. Este middleware tomará tres argumentos: req
, res
, y next
. El tercer argumento, next
, representa la función siguiente que se ejecutará después de que el middleware realice su tarea.
function realIpMiddleware(req, res, next) { // Extrae la cabecera X-REAL-IP si está presente const realIp = req.get('x-real-ip'); // Extrae la cabecera FORWARD si está presente const forwardHeader = req.get('x-forwarded-for'); // Asigna los valores a las variables si están presentes if (realIp) { req.ip = realIp; } if (forwardHeader) { req.forwarded = forwardHeader; } // Llama al siguiente middleware o ruta en la cadena de manejo de solicitudes next(); }
En este ejemplo, estamos extrayendo las cabeceras X-REAL-IP
y x-forwarded-for
si están presentes en la solicitud y asignándolas a las propiedades req.ip
y req.forwarded
. Luego, llamamos a next()
para continuar con el siguiente middleware o ruta.
Paso 4: Usa el Middleware
Utiliza el middleware en tu aplicación Express antes de tus rutas:
app.use(realIpMiddleware); // ... Configura tus rutas después del middleware
Paso 5: Crea una Ruta de Ejemplo
Añade una ruta de ejemplo para probar el middleware:
app.get("/", (req, res) => { // Accede a las propiedades ip y forwarded si se han asignado correctamente const realIp = req.ip; const forwardHeader = req.forwarded; res.json({ "x-real-ip": realIp, "x-forwarded-for": forwardHeader }); });
Paso 6: Ejecuta tu Aplicación
Ejecuta tu aplicación Express:
node app.js
Paso 7: Prueba tu Middleware
Realiza una solicitud a tu aplicación Express y verifica que las cabeceras X-REAL-IP
y
se extraigan correctamente y se muestren en la respuesta.x-forwarded-for
Conclusión:
Has aprendido cómo crear un middleware en Node.js y Express para obtener las cabeceras X-REAL-IP
y
de las llamadas HTTP entrantes. Los middlewares te permiten personalizar el manejo de las solicitudes HTTP y realizar tareas adicionales antes o después de que una solicitud sea manejada por tu aplicación Express. Puedes adaptar este enfoque para trabajar con otras cabeceras o realizar otras tareas de personalización según tus necesidades específicas.x-forwarded-for
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.