【问题标题】: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);
})