Node.js API中PUT/DELETE请求返回404问题排查求助
解决Node.js API中PUT/DELETE请求返回404的问题
你的PUT和DELETE请求始终返回404的核心原因是路由路径缺少开头的斜杠/。Express框架要求路由路径必须以/开头,否则会被解析为相对路径,无法匹配到正确的处理逻辑。
错误代码对比与修正
原错误的路由定义:
app.put('api/courses/:id', (req, res) => { ... }) app.delete('api/courses/:id', (req, res) => { ... })
修改后的正确路由定义:
app.put('/api/courses/:id', (req, res) => { const course = courses.find(c => c.id === parseInt(req.params.id)); if (!course) return res.status(404).send('This course with the given id was not found'); const { error } = validateCourse(req.body); if (error) return res.status(400).send(error.details[0].message); course.name = req.body.name; res.send(course); }); app.delete('/api/courses/:id', (req, res) => { const course = courses.find(c => c.id === parseInt(req.params.id)); if (!course) return res.status(404).send('this course with the given ID is not valid'); const index = courses.indexOf(course); courses.splice(index, 1) res.send(course); })
修改完成后,重新在Postman中发送PUT或DELETE请求,即可正常匹配路由并执行对应逻辑。
内容的提问来源于stack exchange,提问作者Coder1989
相关产品推荐
相关产品推荐

