2017-05-12 12 views
0

{"content": "test data"}を見ることができるようにしたいです(クライアントから本文として送信されるはずです私のサーバーコンソールで)POSTリクエストの、代わりに私が手に:ここJavascriptクライアントはPOSTリクエストでボディを送信しますが、node.jsサーバーはそれを空にします

Listening to 8080... 
I'm in myServer.use 
POST request received 
req.params: {} 
req.body: undefined 
req.query: {} 

は私のクライアントである、それは彼のonclickの機能を起動するだけのボタンです:ここで

<!DOCTYPE html> 
<html> 
    <head> 
     <title>REST WebClient</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
     <p>This web is a REST client.</p> 

    <script type="text/javascript"> 
    function POSTpressed(){ 
       //Making the request 
       var xmlHttp = new XMLHttpRequest(); 
       xmlHttp.open("POST", 'http://127.0.0.1:8080/v0/prueba/', true); // false for synchronous request 
       xmlHttp.send({"content":"test data"}); 
    } 
    </script> 

     <input type="button" onclick="POSTpressed();" id="POSTbutton" value="POST"/> 

    </body> 
</html> 

サーバーです。誰かがそれを再現しようとすると、 "express"ライブラリをインストールする必要があります。

var express = require('express'); 
var myServer = express(); 

//stuff for server to going on 
myServer.use(function(req, res, next){ 
    console.log("I'm in myServer.use"); 
    res.set('Content-Type', 'application/json'); 
    res.setHeader('Access-Control-Allow-Origin', '*'); //general access 
    next(); 
}); 

//function which handles POST requests 
myServer.post('/v0/prueba/', function(req, res){ 
    console.log('POST request received'); 
    //trying to see the sent body 
    console.log("req.params: "+JSON.stringify(req.params)); 
    console.log("req.body: "+ req.body); //req.body.content would throw error: no content in undefined 
    console.log("req.query: "+ JSON.stringify(req.query)); 

    res.send(null); 

});//myServer.post 

myServer.listen(8080); 
console.log('Listening to 8080...'); 

答えて

1

を参照してください、あなたは体を解析するためのボディパーサーミドルウェアを追加する必要があります。

var bodyParser = require('body-parser') 

    : 

// parse application/x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: false })) 

// parse application/json 
app.use(bodyParser.json()) 
0
var bodyParser = require('body-parser'); 
myServer.use(bodyParser.json()); 
myServer.use(bodyParser.urlencoded({ extended: true })); 

あなたは体を得るためにボディパーサーを使用する必要があります。あなたは、クライアント によって送信されたデータを取得するためにボディパーサーが必要

関連する問題