Maison > interface Web > js tutoriel > Comment accéder au corps complet de la requête dans Node.js avec Express : un guide sur le middleware et la gestion des requêtes brutes

Comment accéder au corps complet de la requête dans Node.js avec Express : un guide sur le middleware et la gestion des requêtes brutes

DDD
Libérer: 2024-10-29 05:41:30
original
595 Les gens l'ont consulté

How to Access the Full Request Body in Node.js with Express: A Guide to Middleware and Raw Request Handling

Accès au corps complet de la requête dans Node.js avec Express

Dans Node.js, utiliser Express pour gérer les requêtes POST et accéder à leurs corps peut présenter des défis. Le code fourni ne parvient pas à récupérer l'intégralité du corps de la requête, ce qui entraîne des exceptions. Cet article explore les solutions à ce problème et aborde la possibilité d'obtenir la requête brute sans utiliser express.bodyParser().

Utilisation d'Express Middleware

À partir d'Express v4. 16, le middleware JSON intégré peut être implémenté pour analyser efficacement les corps des requêtes au format JSON :

app.use(express.json())
Copier après la connexion

Ce middleware analyse automatiquement le contenu du corps dans un objet JavaScript accessible via la propriété req.body. Par exemple :

app.post('/test', (req, res) => {
  res.json({ requestBody: req.body })
})
Copier après la connexion

Gestion des requêtes brutes sans middleware

Pour obtenir la requête brute sans middleware, une approche alternative peut être utilisée :

  1. Utilisation de la propriété request.rawBody :

    Cette propriété donne accès au corps de la requête brut et non analysé. Cependant, cela nécessite de définir l'option de limite dans le middleware bodyParser sur une valeur supérieure à la longueur attendue du corps.

  2. Utilisation d'un middleware personnalisé :

    Un middleware personnalisé peut être défini pour intercepter les requêtes entrantes et récupérer le corps brut :

    app.use((req, res, next) => {
      req.rawBody = '';
      req.on('data', (chunk) => { req.rawBody += chunk; });
      req.on('end', () => { next(); });
    });
    Copier après la connexion

Il est important de noter que la manipulation manuelle des corps bruts est plus complexe et peut conduire à frais généraux de performance. L'utilisation de middleware est généralement recommandée pour sa simplicité et son efficacité.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal