Haben ein Problem mit etwas, das relativ einfach sein sollte. Ich bin eine POST-Anforderung mit JSON-Daten zu senden, wie folgt:Knoten js + Express 4 Parsen JSON POST Anfrage
curl -H "Content-Type : application/json" -X POST -d '{"searchbar":"cat"}' http://someurl.com/public/search
In meiner Anwendung ich eine Route haben ... unter ‚/ Strecken‘ ich die bodyParser gesetzt haben, wie folgt:
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
In der Route habe ich var searchbar = req.body.searchbar
Allerdings ist die variable Suchleiste immer undefiniert.
kann ich die Daten im Körper sehen wie folgt aus:
{ '{searchbar:cat}': '' }
Offensichtlich werden die Daten entweder nicht richtig von der Curl gesendet werden (so meine Locke falsch ist) oder die Daten durch die nicht analysiert werden KörperParser. Kann jemand helfen ?
EDIT: Routen/index.js
var express = require('express');
var bodyParser = require('body-parser');
var moment = require('moment');
var fs = require('fs');
var router = express.Router();
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
router.all('*',function(req,res,next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, OPTIONS");
next();
});
router.post('/public/search/', function (req, res) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, OPTIONS");
var searchbar = req.body.searchbar;
console.log("Searchbar is : " + searchbar);
console.log("body is : " + require('util').inspect(req.body, false, null));
});
modeul.exports = router;
UPDATE:
Ich benutzte Postbote (Chrom-Plugin) und verwaltet die Daten senden und analysieren - es muss ein Problem mit Curl in diesem Fall ...
Daten benötigt nicht richtig .. überprüfen curl Post einmal agian –
können Sie Ihren Code schreiben vollständig sendet, damit wir verstehen können, wo Problem ist –
@Srinivas zur Beschreibung hinzugefügt haben – avrono