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, Investigador, 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.