Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript bodyParser的问题w/JSON_Javascript_Json_Express_Fetch Api_Body Parser - Fatal编程技术网

Javascript bodyParser的问题w/JSON

Javascript bodyParser的问题w/JSON,javascript,json,express,fetch-api,body-parser,Javascript,Json,Express,Fetch Api,Body Parser,我通过fetchapi在React组件中发送数据,并将结果作为JSON返回。在我的Express服务器上发布时,我使用bodyParser中的jsonParser方法解析数据,但在insead中,我只返回一个空对象。我不明白jsonParser的问题是什么,因为如果我使用textParser,我的数据可以很好地发送 编辑:当在服务器上打印请求(req)时,它显示正文中没有收到任何内容。但这只发生在jsonParser上,而不是textParser上 获取: fetch('./test',{

我通过fetchapi在React组件中发送数据,并将结果作为JSON返回。在我的Express服务器上发布时,我使用bodyParser中的jsonParser方法解析数据,但在insead中,我只返回一个空对象。我不明白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);
})

假设您想发布
{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'}])