2017-06-26 6 views
0

これで、エクスプレスサーバにクエリパラメータとしてデータを送信します。しかし、代わりに、サーバーをペイロードとして表現するためにデータを送信します。 サーバを高速化するためにペイロードデータを送信するにはどうすればよいですか?また、エクスプレスサーバーからペイロードデータを取得するにはどうすればよいですか?誰も私の疑問をクリアすることはできますか?ここでエクスプレスでペイロードを送信して取得JS

は私のコードで何が悪い

// http request code 

var http=new XMLHttpRequest(); 
http.open('post','localhost:9090/putData'); 
http.onload=function(){ 
    if (this.status >=200 && this.status <300){ 
     console.log(this.response); 
    } 
}; 
var payload = { 
    data: 'Something' 
} 
http.send(payload); 

// server.js 

app.use(bodyParser.json({limit: '50mb'})); 

app.use('/putData', function(req, res){ 
    console.log(req.body); // empty object printed 
}) 

、私のコードです。

+0

にそれはあなたが求めているものは明らかではありませんreq.bodyオブジェクトを使用することができます。 POSTリクエストのようなJSONのようなものをどう対処するかを尋ねているのなら、これは非常に一般的なので、かなりのExpressチュートリアルでこれを扱います。あなたがそれを送る方法を尋ねているなら、それはあなたが*送る方法に依存します。それがブラウザの場合、これは任意の数のチュートリアルでもよく説明されています。そうでない場合は、より具体的にする必要があります。 –

答えて

0

あなたはリクエストオブジェクトから「体」を参照する必要があります。型に応じて、パーサでデシリアライズすることができます。私はnpmパッケージ 'body-parser'を使用して、オブジェクトをjsonにデシリアライズします。

app.use(bodyparser.json({limit: '50mb'})); 

以下のように明示ミドルウェアにおけるボディパーサーを設定します次に、あなたがあなたの次requests`

app.get('getBody', function(req, res){ 
    console.log(req.body); 
    res.status(200); 
});` 
+0

@franzkeさんへのお返事ありがとうございます。私は私の質問を編集しました。私のコードで何が間違っていますか? – Vasi

+0

パッケージ「body-parser」をnpmからインストールしてから、require文を組み込んでから使用するようにしてください。var bodyparser = require( 'body-parser');また、クライアントは、Content-Typeヘッダーをapplication/jsonに設定して、サーバーが本文を読み取る方法を知っていることを確認する必要があります。 – franzke

関連する問題