Cuando se trabaja en el backend de proyectos, manejar las solicitudes y respuestas es crucial. Gestionar estas solicitudes de manera eficiente es esencial para una comunicación fluida entre el cliente y el servidor. A continuación se muestran algunas propiedades de solicitud comunes e importantes con las que todo desarrollador debería estar familiarizado.
req.ip en Express.js es una propiedad del objeto de solicitud que proporciona la dirección IP del cliente que realiza la solicitud. Devuelve una cadena que representa la dirección IP del cliente.
Manejo de servidores proxy:
De forma predeterminada, si la aplicación está detrás de un proxy, req.ip podría devolver la IP del proxy en lugar de la IP del cliente real. Para obtener la IP del cliente correcta, puede configurar Express para que confíe en el proxy configurando el proxy de confianza.
app.set("trust proxy", true);
Ahora, req.ip devolverá la IP correcta del cliente incluso cuando esté detrás de un proxy.
Ejemplo:
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
Para usar req.cookies necesitamos instalar el paquete llamado middleware cookie-parser. La propiedad se utiliza para recibir las cookies enviadas por el cliente en el encabezado de Cookies. Las cookies en las cookies solicitadas no están firmadas, lo que significa que no han sido modificadas ni verificadas. Puedes usar esto para datos menos confidenciales
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
Para usar req.signedCookies necesitamos instalar el paquete llamado middleware cookie-parser. Contiene cookies que han sido firmadas y verificadas para garantizar que no hayan sido alteradas. Las cookies firmadas se cifran con la clave secreta. Las req.signedCookies almacenan solo las cookies que pasan la verificación.
Cómo configurar cookies firmadas:
Para configurar una cookie firmada, puede utilizar la opción firmada: verdadera:
res.cookie('signedCookieName', 'signedValue', { signed: true });
Ejemplo:
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
req.params en Express.js es un objeto que contiene parámetros de ruta de la URL de la solicitud. Los parámetros de ruta son marcadores de posición con nombre en la ruta de la ruta y req.params almacena los valores proporcionados por el cliente en la URL para esos marcadores de posición.
Puede definir una ruta con parámetros usando dos puntos (:) antes del nombre del parámetro.
Ejemplo:
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
req.query en Express.js es un objeto que contiene los parámetros de la cadena de consulta de la URL de la solicitud. Las cadenas de consulta son pares clave-valor que vienen después de ? en una URL y se utilizan para pasar datos adicionales al servidor. Se pueden pasar múltiples consultas usando &.
URL de ejemplo:
http://example.com/search?term=flowers&sort=asc
Ejemplo:
app.get('/search', (req, res) => { console.log(req.query); // { term: 'flowers', sort: 'asc' } res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`); });
Contiene pares clave-valor de datos enviados por el cliente. Por defecto, su valor no está definido. Los datos del cuerpo se pueden completar utilizando middleware integrado como express.json y urlencoded({ extended: true }), o middleware externo como body-parser.
El siguiente código le ayudará a comprender
import express from "express"; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.get("/user", (req, res) => { const user = req.body; consolo.log(user); res.send(user); })
¡Espero que te haya resultado útil! No olvides dar me gusta y guardar para referencia futura. ¡Feliz codificación!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3