如果同一层有route/params,如何到达路线
How to get to a route if theres a route/params in the same level
所以我试图去 stud_router.post(/students/add )
,但我被定向到 stud_router.get(/students/:email )
,我想去 /students/add
但它把我送到 /students/:email
而不是/students/add
。
stud_router.post(`/students/add` , (req,res,next) => {
res.render(`studentadd/students_add`)
})
stud_router.get(`/students/:email` , (req,res ,next) => {
const found = data.some( stud => stud.email === req.params.email)
if (found) {
res.send(data.filter( stud => stud.email === req.params.email ))
} else {
res.status(400).send({ msg: `no member with the email of ${req.params.email}`})
}
})
你的问题有问题。这两条路线:
stud_router.post(`/students/add`, ...)
stud_router.get(`/students/:email` , ...)
不要以任何方式重叠,因为一个用于 GET 请求,一个用于 POST 请求。传入请求将仅匹配这些请求之一。所以,如果有东西要去 stud_router.get('/students/:email' , ...)
,那么它一定是 GET,它永远不会匹配其他路线。
因此,客户端似乎对它发送的是 POST 还是 GET 感到困惑。或者,您的路由定义对它们要匹配的内容感到困惑。
所以我试图去 stud_router.post(/students/add )
,但我被定向到 stud_router.get(/students/:email )
,我想去 /students/add
但它把我送到 /students/:email
而不是/students/add
。
stud_router.post(`/students/add` , (req,res,next) => {
res.render(`studentadd/students_add`)
})
stud_router.get(`/students/:email` , (req,res ,next) => {
const found = data.some( stud => stud.email === req.params.email)
if (found) {
res.send(data.filter( stud => stud.email === req.params.email ))
} else {
res.status(400).send({ msg: `no member with the email of ${req.params.email}`})
}
})
你的问题有问题。这两条路线:
stud_router.post(`/students/add`, ...)
stud_router.get(`/students/:email` , ...)
不要以任何方式重叠,因为一个用于 GET 请求,一个用于 POST 请求。传入请求将仅匹配这些请求之一。所以,如果有东西要去 stud_router.get('/students/:email' , ...)
,那么它一定是 GET,它永远不会匹配其他路线。
因此,客户端似乎对它发送的是 POST 还是 GET 感到困惑。或者,您的路由定义对它们要匹配的内容感到困惑。