2017-05-03 21 views
1

私はReetchコンポーネントでFetch APIを使用してデータを送信し、その結果をJSONとして返します。 ExpressサーバでPOSTEDを実行すると、bodyParserのjsonParserメソッドを使用してデータを解析しますが、inseadでは空のオブジェクトのみが返されます。 jsonParserの問題点は分かりません。なぜなら、textParserを使用すると、データが正常に送信されるからです。bodyParserのJSONでの問題

編集:サーバー上でリクエスト(req)を印刷すると、本文に何も受信されていないことが表示されます。これは、textParserではなくjsonParserでのみ発生します。

フェッチ:

fetch('./test',{ 
    method: 'POST', 
    body: ["{'name':'Justin'}"] 
}) 
.then((result) => { 
     return result.json(); 
    }) 
.then((response) => { 
     console.log(response); 
    }) 
.catch(function(error){ 
     //window.location = "./logout"; 
    console.log(error); 
    }); 

エクスプレス:

app.use('/test', jsonParser, (req,res) =>{ 
    res.json(req.body); 
}) 

答えて

2

あなたが{name: 'Justin'}オブジェクトを投稿したいと仮定すると、あなたはbodyパラメータは受け付けません

fetch('test', { 
    method: 'POST', 
    body: JSON.stringify({name: 'Justin'}), 
    headers: new Headers({ 
    'Content-Type': 'application/json; charset=utf-8' 
    }) 
}) 

のようなものをお勧めします配列(あなたが渡したもの)です。あなたは、単に

JSON.stringify([{name: 'Justin'}]) 
+0

body値を変更し、配列を掲示することを意味しなかった場合は


おかげでそんなに、これは完全に働きました! –