为bodyParser发布w / JSON

时间:2017-05-03 23:29:36

标签: javascript json express fetch-api body-parser

我通过Fetch API在我的React组件中发送数据,并将结果作为JSON返回。在我的Express服务器上POSTED时,我使用bodyParser中的jsonParser方法来解析数据,但是我只是得到了一个空对象。我不明白jsonParser的问题是什么,因为如果我使用textParser,我的数据会被发送好。

编辑:在服务器上打印出请求(req)时,它显示正文中没有收到任何内容。这只发生在jsonParser上,而不是textParser。

获取:

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);
})

1 个答案:

答案 0 :(得分:2)

假设你想发布{name: 'Justin'}个对象,你会想要像

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

body参数不接受数组(这是您传递的数据)。

如果您的意思是发布数组,只需将body值更改为

即可
JSON.stringify([{name: 'Justin'}])