Extrahieren von POST-Daten mit Express
Habe ich gelesen node.js Extrahieren von POST-Daten.
Aber hier ist mein problem, gewusst wie: extrahieren von POST-Daten mit Express bekam ich einen HTTP-request so Aussehen?
POST /messages HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Length: 9
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
Content-Type: application/xml
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4 Accept-Charset: UTF-8,*;q=0.5
msg=hello
Ich kann nicht scheinen, um die msg=hello
Schlüssel-Wert-paar aus dem Körper mit dem Express.
Habe ich versucht, alle diese Methoden req.header()
req.param()
req.query()
req.body
aber Sie scheinen leer zu sein.
Wie man die Körper die Inhalte?
app.post('/messages', function (req, res) {
req.??
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist bodyParser nicht behandeln, 'application/xml', löste ich dieses hauptsächlich durch das Lesen dieses post: https://groups.google.com/forum/?fromgroups=#!Thema/express-js/6zAebaDY6ug
Müssen Sie schreiben Sie Ihren eigenen parser, die ich veröffentlicht habe die unten mit mehr Details auf github:
https://github.com/brandid/express-xmlBodyParser
dann verwenden Sie es mit
Wenn du dies in der config:
app.use(express.bodyParser());
Und diese in Ihrer Ansicht:
Dann sollte dies funktionieren:
Ich glaube, Sie brauchen, um zu konfigurieren express den
bodyParser
middleware.app.use(express.bodyParser());
Finden Sie in der express -Dokumentation.
Er sagt:
req.body()
sollte jetzt wieder die erwarteten post-body.Ich hoffe, das hilft!
bodyParser
montiert, doch diereq.body
Objekt ist noch leer 😮/messages
Weg zu testen?Ist es MÖGLICH (nicht sicher, was es ist, hängt davon ab, aber es passierte mir einmal, es kann sein das bodyParser), die den Hauptteil der Anfrage formatiert ist, in der Weise, dass Ihre JSON-Daten SELBST behandelt werden als Schlüssel in einem Schlüssel-Wert-paar, mit einer leeren entsprechende Wert. Was war für mich in dieser situation wurde zum extrahieren von JSON-Objekt zuerst und dann weiter wie normal:
Dies ist wohl ziemlich suboptimal, aber wenn sonst nichts funktioniert (ich habe versucht, für Alter, auf der Suche nach einem besseren Weg, und keine gefunden), könnte dies für Sie arbeiten.
Buchung xml als ich sehen kann, sind die Antworten, die Sie bekamen, wurden basierend auf JSON-Eingabe. Wenn Sie wollen, dass die Inhalte des xml angezeigt, verarbeiten der raw-Anfrage :
Als ein Beispiel mit curl als Ihrem Postboten:
Ausgabe:
Stellen Sie sicher, dass Ihr Körper-parser-middleware nicht in die Quere kommen: Körper-parser-xml-Prozesse Ihre Anfrage Objekt on-the-fly ein json-Objekt, nach dem Sie nicht verarbeiten Sie Ihre raw-Anfrage mehr. (Und Sie können erraten, wer steckte mehrere Stunden nach dieser...)