Lorsque vous travaillez sur le backend des projets, la gestion des demandes et des réponses est cruciale. La gestion efficace de ces requêtes est essentielle pour une communication fluide entre le client et le serveur. Voici quelques propriétés de requête courantes et importantes que tout développeur devrait connaître.
req.ip dans Express.js est une propriété de l'objet de requête qui fournit l'adresse IP du client effectuant la demande. Il renvoie une chaîne représentant l'adresse IP du client.
Gestion des proxys :
Par défaut, si l'application se trouve derrière un proxy, req.ip peut renvoyer l'adresse IP du proxy plutôt que l'adresse IP du client réel. Pour obtenir l'adresse IP client correcte, vous pouvez configurer Express pour faire confiance au proxy en définissant un proxy de confiance.
app.set("trust proxy", true);
Désormais, req.ip renverra l'adresse IP correcte du client même derrière un proxy.
Exemple :
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
Pour utiliser req.cookies, nous devons installer le package appelé cookie-parser middleware. La propriété est utilisée pour obtenir les cookies envoyés par le client dans l'en-tête Cookies. Les cookies contenus dans req.cookies ne sont pas signés, ce qui signifie qu'ils n'ont pas été modifiés ou vérifiés. Vous pouvez l'utiliser pour des données moins sensibles
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
Pour utiliser req.signedCookies, nous devons installer le package appelé cookie-parser middleware. Celui-ci contient des cookies qui ont été signés et vérifiés pour garantir qu'ils n'ont pas été modifiés. Les cookies signés sont cryptés avec la clé secrète. Les req.signedCookies stockent uniquement les cookies qui réussissent la vérification.
Comment définir des cookies signés :
Pour définir un cookie signé, vous pouvez utiliser l'option signé: true :
res.cookie('signedCookieName', 'signedValue', { signed: true });
Exemple :
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
req.params dans Express.js est un objet qui contient les paramètres de route de l'URL de la requête. Les paramètres de route sont nommés espaces réservés dans le chemin de la route, et req.params stocke les valeurs fournies par le client dans l'URL pour ces espaces réservés.
Vous pouvez définir un itinéraire avec des paramètres en utilisant deux points (:) avant le nom du paramètre.
Exemple :
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
req.query dans Express.js est un objet qui contient les paramètres de chaîne de requête de l'URL de la requête. Les chaînes de requête sont des paires clé-valeur qui suivent le ? dans une URL et sont utilisés pour transmettre des données supplémentaires au serveur. Plusieurs requêtes peuvent être transmises à l'aide de &.
Exemple d'URL :
http://example.com/search?term=flowers&sort=asc
Exemple :
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}`); });
Il contient des paires clé-valeur de données envoyées par le client. Par défaut, sa valeur n'est pas définie. Les données corporelles peuvent être renseignées à l'aide d'un middleware intégré tel que express.json et urlencoded({ extend: true }), ou d'un middleware externe comme body-parser.
Le code suivant vous aide à comprendre
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); })
J'espère que cela vous a été utile ! N'oubliez pas d'aimer et de sauvegarder pour référence future. Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!