Essayons de rester le moins technique possible.
Disons que vous envoyez des données de formulaire html à un serveur node-js, c'est-à-dire que vous avez fait une requête au serveur. Le fichier du serveur recevrait votre demande sous forme d'un objet requête. Maintenant, logiquement, si vous faites un console log de cet objet requête dans votre fichier serveur, vous devriez voir vos données de formulaire quelque part dedans, que vous pourriez ensuite extraire, mais eh bien ! Vous ne le voyez pas en fait !
Alors, où sont nos données ? Comment les extrairons-nous si elles ne sont pas présentes dans ma requête.
La simple explication à cela est que http envoie vos données de formulaire en morceaux qui sont destinés à être assemblés à mesure qu'ils atteignent leur destination. Comment allez-vous alors extraire vos données.
Mais pourquoi se donner la peine de parser manuellement vos données à chaque fois pour les morceaux et les assembler. Utilisez quelque chose appelé "body-parser" qui fera cela pour vous.
body-parser analyse votre demande et la convertit en un format à partir duquel vous pouvez facilement extraire les informations pertinentes dont vous pourriez avoir besoin.
Par exemple, supposons que vous ayez un formulaire d'inscription sur votre interface utilisateur. Vous le remplissez, et demandez au serveur d'enregistrer les détails quelque part.
Extraire le nom d'utilisateur et le mot de passe de votre demande est aussi simple que ci-dessous si vous utilisez body-parser.
var loginDetails = {
username : request.body.username,
password : request.body.password
};
En gros, body-parser a analysé votre demande entrante, assemblé les morceaux contenant vos données de formulaire, puis créé cet objet body pour vous et l'a rempli avec vos données de formulaire.
87 votes
Afin de lire les données HTTP POST, nous devons utiliser le module node "body-parser". body-parser est un morceau du middleware express qui lit l'entrée d'un formulaire et la stocke sous forme d'objet javascript accessible via
req.body
6 votes
Avec express, vous pouvez lire toutes les données à l'intérieur de la requête HTTP, telles que les en-têtes
req.headers
(tableau), vous pouvez lire le corps du paquet http commereq.body
expliqué par @CleanCrispCode et vous pouvez lire en tant que paramètre de requêtereq.query.variable
. Cela est utile car express transforme automatiquement la requête en objets JavaScript.9 votes
@refactor - ceci pourrait être une des nombreuses raisons pour lesquelles nous devons utiliser body parser, mais cela ne dit pas ce qu'il fait, c'est-à-dire que les objets de requête et de réponse HTTP sont des flux et qu'ils ne sont pas 'lisibles' comme un objet unique comme
res.body
sans que le flux entier soit mis en mémoire tampon dansres.body
d'abord.9 votes
Avec la version 4.16+ d'Express, ils ont inclus leur propre version de body-parser intégrée afin que vous n'ayez pas à importer ce package.
2 votes
Voir aussi Vous n'avez pas besoin de body-parser dans Express 4.16+