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
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 :
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.
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!