【问题标题】:When an object is sent along with a get/post request express returns an empty object for req.body当一个对象与 get/post 请求一起发送时,express 为 req.body 返回一个空对象
【发布时间】:2019-04-02 13:25:46
【问题描述】:

当我发送一个对象作为我的帖子的参数或 get request express 似乎没有收到它

我已经尝试在前端和服务器上获取和发布请求。所有依赖项都运行良好(body-parser 等)

前端:

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 都是未定义的

【问题讨论】:

  • 尝试像这样调用axios.get('http://localhost:4000/videoComments/comment', {params:{pauseTime: 10}})。您可以通过req.params 访问服务器上的参数

标签: reactjs express axios


【解决方案1】:

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

尝试使用req.query 获取查询参数。 这里是expressdocs

【讨论】:

    【解决方案2】:

    后端应该是这样的

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

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2021-12-12
      • 2021-07-23
      • 1970-01-01
      • 2018-12-17
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 2020-06-27
      相关资源
      最近更新 更多