Ich hätte gedacht, dass dies eine triviale Frage war, und dass die Antwort "im Körper" sein würde ... doch scheint es nicht der Fall zu sein.Wo befinden sich POST-Payload-Informationen im Anfrageobjekt?
dieses Beispiel nehmen, wo wir eine Website, die Daten sammeln und dann einen POST an einen Zuhörer Website senden, die die Informationen erhalten:
Hier ist der HTML-Code für die POST-Website:
<html>
<head>
<title>Form POST Site</title>
<script type="text/javascript">
function submitForm(){document.getElementById('form1').action = document.getElementById('server').value;}
</script>
<style type="text/css">
.style1 {width: 100%;}
.style2 {width: 429px;}
#server { width: 254px; }
</style>
</head>
<body>
<H3>Form POST Site</H3>
<form method="POST" id="form1" onSubmit="submitForm()">
<table class="style1">
<tr>
<td class="style2">
Username:</td>
<td>
<input type="text" name="username" value="" /></td>
</tr>
<tr>
<td class="style2">
Server: </td>
<td>
<input type="text" id="server" name="server" value="http://" /></td>
</tr>
<tr>
<td class="style2">
<input type="submit" name="submittable" value="Go" /></td>
<td>
</td>
</tr>
</table>
</form>
</body>
Und hier ist der node.js Code für die Zuhörer Website:
/*global require,console*/
var xml = require('xml');
var express = require('express');
var bodyParser = require ('express-xml-bodyparser');
var app = express();
app.use(bodyParser()); // add a middleware (so that express can parse request.body's json)
app.post('/', (request, response) => {
/*response.send(request.body);*/
console.log(request.body);
response.json("received");
});
app.listen(1123);
So Zugriff auf die POST-Website und zum Einstellen der IP-Adresse des Zuhörers als Ziel, können wir sehen, genau das, was gesendet wird.
Und das ist was mich verwirrt. Der request.body ist leer.
Nicht nur das, wenn ich auf die Gesamtheit der Anfrage schaue, sehe ich nicht den Textwert, den ich für "Benutzername" irgendwo eingegeben habe.
Ich möchte in der Lage sein, die Zeichenfolge "Benutzername" in meinem node.js Code zu erhalten und etwas damit zu tun ... aber ich weiß nicht, wo ich es finden kann.
Jede Hilfe wäre sehr willkommen.
Ok. Also ich verstehe das. Aber egal, welchen Body-Parser ich benutze (und ich habe zwei verschiedene Versionen ausprobiert), ich bekomme immer noch leere Körperwerte ... – rucker
In deinem Fall postest du einen URL-kodierten Körper. Um zu analysieren, müssen Sie ' app.use verwenden (bodyParser.urlencoded ({extended: false}))' –
Ich habe gerade festgestellt, dass Sie 'express-xml-bodyparser' verwenden, nicht' body-parser'. Deshalb ist 'request.body' leer. –