【问题标题】:Front End only recieve Param as "t"前端仅将参数接收为“t”
【发布时间】:2023-04-09 13:57:01
【问题描述】:

Server Side
每当我请求时,无论我传递什么,它都会在服务器上显示 { id: 't' }

app.get("/get_test?:id", (req, res) => {
    console.log(req.params.id);
    res.send(req.params);
})

// client side code    

fetch("/get_test?" + props.id)
.then(res => res.json())
.then(data => {console.log("Data from server: ",data)})
.catch(err => console.log(err))

【问题讨论】:

    标签: node.js reactjs express parameters fetch


    【解决方案1】:

    如果您想获取查询参数,只需使用查询(不是参数)

    app.get("/get_test?:id", (req, res) => {
        console.log(req.query.id);
        res.send(req.query);
    })
    

    或使用参数,但网址会有所不同

    app.get("/get_test/:id", (req, res) => {
        console.log(req.params.id);
        res.send(req.params);
    })
    

    【讨论】:

      【解决方案2】:

      您没有在 url 中指定查询参数名称

      fetch("/get_test?id=" + props.id) // here 
      .then(res => res.json())
      .then(data => {console.log("Data from server: ",data)})
      .catch(err => console.log(err))
      

      而且在服务器端,您也不应该像这样形成 get 处理程序,因为您正在混合路径参数和查询参数。

      app.get("/get_test", (req, res) => { // here do not use the ?:id
          console.log(req.query.id);
          res.send(req.query);
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-23
        • 1970-01-01
        • 2021-04-19
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        • 1970-01-01
        • 2018-11-13
        相关资源
        最近更新 更多