So habe ich den folgenden Code in meiner server.js-Datei, die ich mit node.js ausgeführt werde. Ich verwende Express, um HTTP-Anfragen zu bearbeiten.Express.js POST req.body leer
app.post('/api/destinations', function (req, res) {
var new_destination = req.body;
console.log(req.body);
console.log(req.headers);
db.Destination.create(new_destination, function(err, destination){
if (err){
res.send("Error: "+err);
}
res.json(destination);
});
});
ich die folgende im Terminal läuft:
curl -XPOST -H "Content-Type: application/json" -d '{"location": "New York","haveBeen": true,"rating": 4}' http://localhost:3000/api/destinations
Danach server.js druckt die folgenden ausgeführt wird.
{}
{ host: 'localhost:3000',
'user-agent': 'curl/7.43.0',
accept: '*/*',
'content-type': 'application/json',
'content-length': '53' }
So ist req.body {}
. Ich habe andere Stack Overflow-Posts zu ähnlichen Problemen gelesen, bei denen der Inhaltstyp aufgrund des Body-Parsers nicht korrekt war. Aber das ist nicht das Problem, weil der Inhaltstyp application/json ist.
Irgendwelche Ideen, wie man den tatsächlichen Körper der Anfrage erhält?
Vielen Dank im Voraus.
Sie verwenden die Body-Parser-Middleware, richtig? – Cristy
Und wenn Sie sind: wie, genau? – robertklep
Ich benutze Body-Parser. Im Grunde benötigt es dann nur "app.use (bodyParser.urlencoded ({extended: true}));" ohne die Zitate natürlich. –