Maison  >  Article  >  interface Web  >  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
DDDoriginal
2024-10-29 05:41:30549parcourir

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())

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 })
})

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(); });
    });

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!

Déclaration:
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