Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 提出请求后问题_Javascript_Node.js_Reactjs - Fatal编程技术网

Javascript 提出请求后问题

Javascript 提出请求后问题,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我正试图打印从尸体上收到的数据,但还没有工作。这是我的尝试 router.post('/api/main',(req,res) => { if(req.error){ res.status(400).send(error.details[0].message); return; } res.send(req.body.message) }) 在邮递员身上,我发出如下请求:localhost:5000/api/main/ 正文如下所示:JSON { "m

我正试图打印从尸体上收到的数据,但还没有工作。这是我的尝试

router.post('/api/main',(req,res) => {

  if(req.error){
    res.status(400).send(error.details[0].message);
    return;
  }
   res.send(req.body.message)
})
在邮递员身上,我发出如下请求:
localhost:5000/api/main/
正文如下所示:
JSON

{
  "message": "hello"
}
然而,我得到了这样的回应

{
    "success": false,
    "msg": {}
}
我遗漏了什么

在您的post路由器上添加为中间件

下面是设置身体解析器中间件的正确方法

router.use(bodyParser.urlencoded({extended: true});
router.post('/api/main', (req, res) ...)

您可能还希望在索引文件中使用
bodyParser.json()
,在使用任何路由器之前,添加app.use(bodyParser.urlEncoded({extended:true}))

作为
var bodyParser=require('body-parser')安装并添加了body parser
但同样的错误您还需要将bodyParser设置为中间件,而不仅仅是将其包含在脚本中
router.post('/api/main',bodyParser.json(),(req,res)…)
bodyParser中间件中可以使用几种方法,这只是一个示例。您应该使用的中间件类型取决于您希望如何转换响应体。例如,
bodyParser.urlEncoded({extended:true})
通常用于接收表单请求等。请尝试阅读bodyParser文档-:现在,当我执行console.log(req.body)时,我得到了未定义的消息,可能是因为任何原因,您的post请求实际上没有通过。您是否尝试过console.logging请求主体以查看是否实际收到任何内容?当我尝试console.Log时,它表示未定义。您可以将服务器(或应用程序)代码粘贴到安装路由器的位置吗