C'est le code de mon serveur:
var express = require('express');
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.json());
app.post("/", function(req, res) {
res.send(req.body);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
Depuis Postman, je lance une demande POST à http: // localhost: 3000/ et dans Body/form-data, j'ai une clé "foo" et une valeur "bar".
Cependant, je continue à recevoir un objet vide dans la réponse. La propriété req.body
est toujours vide.
Ajoutez le codage de la demande. Voici un exemple
..
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
..
Sélectionnez ensuite x-www-form-urlencoded
dans Postman ou définissez Content-Type sur application/json
et sélectionnez raw
.
Edit pour l’utilisation de raw
Brut
{
"foo": "bar"
}
En-têtes
Content-Type: application/json
EDIT # 2 Répondre aux questions du chat:
Vous pouvez bien sûr, regardez cette réponse Comment gérer FormData from express 4
x-www-form-urlencoded
et raw
Différences entre application/json et application/x-www-form-urlencoded
let express = require('express');
let app = express();
// For POST-Support
let bodyParser = require('body-parser');
let multer = require('multer');
let upload = multer();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/api/sayHello', upload.array(), (request, response) => {
let a = request.body.a;
let b = request.body.b;
let c = parseInt(a) + parseInt(b);
response.send('Result : '+c);
console.log('Result : '+c);
});
app.listen(3000);
Exemple de JSON et résultat du JSON:
Définissez Content-typeL application/JSON: