私はこれが些細な質問だったと思っていたでしょうし、その答えは "体の中"であると思っていましたが、それは事実ではないようです。POSTペイロード情報はどこにありますかリクエストオブジェクトにありますか?
我々はデータを収集し、その情報を受け取るリスナーのウェブサイトへのPOSTを送信するウェブサイトを持っているところ、この例を見てみましょう:ここ
は、POSTのウェブサイトのHTMLです:
<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>
:
そしてここでは、リスナーのウェブサイトのためのNode.jsのコードです
/*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);
だからPOSTのウェブサイトにアクセスし、ターゲットとして、リスナーのIPアドレスを設定し、我々は送信されている正確に何を見ることができます。
それは私を混乱させるものです。 request.bodyは空です。
リクエストの全体を見ると、「username」に入力したテキスト値はどこにも表示されません。
私はnode.jsコードで "username"という文字列を受け取って、それと何かをしたいと思っていますが、どこから探しているのかわかりません。
ご協力いただければ幸いです。
Ok。だから私はそれを得る。しかし、私が使用するボディパーサー(と私は2つの異なるバージョンを試しました)とは関係なく、私はまだ空のボディ値を取得します... – rucker
あなたの場合、あなたはURLエンコードされたボディを投稿しています。したがって、あなたが ' app.use(bodyParser.urlencoded({extended:false})) 'を使用しなければならないことを解析するには' –
'body-parser'ではなく' express-xml-bodyparser'を使用していることに気づきました。だから、 'request.body'は空です。 –