Front End only recieve Param as "t"

Viewed 46

Server Side
Whenever i request no matter what i pass it shows { id: 't' } on server

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))
2 Answers

If you want to get query params just use query (not params)

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

or use params, but url will be different

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

You did not specify the query param name in the 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))

And also on the server side you should not form the get handler like that because you are mixing path params and query params.

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