Quelqu'un peut-il me dire, s'il vous plaît, le moyen recommandé (à jour) d'obtenir les données de formulaire POSTé dans express.
De nombreux tutoriels/posts, etc., parlent de bodyParser, mais ils ne sont plus fournis avec Express et les autres blogs, etc., recommandent d’utiliser urlencoded directement, mais à présent, ce n’est plus disponible.
Essayer de trouver des informations précises sur ces frameworks ou technologies me préoccupe.
BTW ce qui m'intéresse est très simple et petite forme de données
Vous devriez installer body-parser
à travers npm-install
. Maintenant, il s'agit d'un middleware séparé.
Après cela, ajoutez la ligne suivante dans votre app.js
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
// in latest body-parser use like below.
app.use(bodyParser.urlencoded({ extended: true }));
Il analyse la demande post
en tant que object
. Vous obtiendrez vos variables dans req.body
.
Dans votre gestionnaire de demandes post
.
app.post('/post',function(request,response){
console.log(request.body) //you will get your data in this as object.
})
La réponse ci-dessus était pour la question spécifiquement posée, le PO recherchait le bodyParser
(obsolète) qui ne faisait plus partie de express
.
Comme le titre de la question est très générique et que la réponse n'inclut pas tous les aspects de form-data
, Je mettrai la réponse de @ StLia en édition.
fichier Lisez-moi de Body-Parser
Cela ne gère pas les corps en plusieurs parties, en raison de leur nature complexe et généralement importante. Pour les corps en plusieurs parties, les modules suivants pourraient vous intéresser:
Vous pouvez utiliser le module express-formidable . installer 'express-formidable' à l'aide de la commande suivante npm install express-formidable
l'exemple simple est comme suit
const express = require('express');
const formidable = require('express-formidable');
var app = express();
app.use(formidable());
app.post('/upload', (req, res) => {
//req.fields contains non-file fields
//req.files contains files
res.send(JSON.stringify(req.fields));
});
De la README de analyseur de corps) :
Cela ne gère pas les corps en plusieurs parties, en raison de leur nature complexe et généralement importante.
Ce qui précède va travailler avec x-www-form-urlencoded
et json
mais cela ne fonctionnera avec aucun multipart
. form-data
est aussi multipart
avec l’en-tête multipart/form-data
.
En cas de form-data
, votre meilleure solution serait d’utiliser express-formidable .