当对象与get / post请求一起发送时,express为req.body返回一个空对象

时间:2019-04-02 13:25:46

标签: reactjs express axios

当我发送一个对象作为帖子的参数或获取请求快递时,似乎没有收到它

我尝试在前端和服务器上获取和发布请求。所有依赖项都工作正常(body解析器等)

前端:

axios.get('http://localhost:4000/videoComments/comment', {pauseTime: 10})

axios.get('http://localhost:4000/videoComments/comment', {data:{pauseTime: 10}})

后端:

videoCommentsRoutes.route('/comment').get(function (req, res) {
    console.log(req.body);

req.body是一个空对象。 req.data,req.params都未定义

3 个答案:

答案 0 :(得分:1)

GET请求仅支持查询参数。 axios(以及fetchXMLHTTPRequest包装程序中的任何一个,例如superagent)都应将您的对象转换为查询字符串。

尝试使用req.query获取查询参数。 这是express docs的相关信息。

答案 1 :(得分:0)

请愿单仅在setState上可用,如动词一样。如果要通过String _profilePhoto = ""; //Change await into an async operation http.post(url4, body: body, headers: headers).then( (response) { var responseJson = json.decode(response.body); print(data['fieldData']['iMedewerker Foto']); setState(() { _data = responseJson['response']['data'][0]; _profilePhoto = data['fieldData']['iMedewerker Foto']; }); }) Widget build(BuildContext context){ //Check if string is empty if ( _profilePhoto == "" ){ return CircularProgressIndicator(); }else { return Image.network( _profilePhoto ); } } 发送数据,请将其附加到URL。或使用post

get

axios.post

答案 2 :(得分:0)

后端应该像

videoCommentsRoutes.route('/comment/:pauseTime').get(function (req, res) {
    console.log(req.params.pauseTime);
})

videoCommentsRoutes.route('/comment').get(function (req, res) {
        console.log(req.query.pauseTime);
    })

前端呼叫类似

axios.get('http://localhost:4000/videoComments/comment', {params:{pauseTime: 10}})