113 votes

Node.js - obtenir le corps brut de la requête en utilisant Express

Lorsque j'utilise Express, et que mon code est :

app.use(express.bodyParser());

Comment puis-je obtenir le corps brut de la demande ?

16voto

oferei Points 401

C'est une variation de la réponse de l'hexacyanide ci-dessus. Cet intergiciel gère également l'événement 'data' mais n'attend pas que les données soient consommées avant d'appeler 'next'. De cette façon, cet intergiciel et le bodyParser peuvent coexister, en consommant le flux en parallèle.

app.use(function(req, res, next) {
  req.rawBody = '';
  req.setEncoding('utf8');

  req.on('data', function(chunk) { 
    req.rawBody += chunk;
  });

  next();
});
app.use(express.bodyParser());

3voto

Detroit Charan Points 11
// Change the way body-parser is used
const bodyParser = require('body-parser');

var rawBodySaver = function (req, res, buf, encoding) {
  if (buf && buf.length) {
    req.rawBody = buf.toString(encoding || 'utf8');
  }
}
app.use(bodyParser.json({ verify: rawBodySaver, extended: true }));

// Now we can access raw-body any where in out application as follows
request.rawBody;

0voto

Parth Pandey Points 19

Utilisez

app.use(express.json());

ou

app.use(express.text());

ou

app.use(express.urlencoded());

En fonction de votre format brut

-2voto

mewc Points 184

Utilisez analyseur de corps Parse le corps avec ce qu'il sera :

app.use(bodyParser.text());

app.use(bodyParser.urlencoded());

app.use(bodyParser.raw());

app.use(bodyParser.json());

ie. Si vous êtes censé obtenir un fichier texte brut, exécutez .text() .

C'est ce que le body-parser supporte actuellement

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X