如何解决当我res.redirect`/ relative / url`时,收到的响应是PATCH 404 Not found如何解决这个问题?
问题:我想“更新”保存在mongoDB上的文档,因此我使用了Blog.findByIdAndUpdate(req.body.id,{ 'status': req.body.status })
。到这里,一切都很好。但是,只要我在其下添加res.redirect('/user/control_articles')
即可将用户重定向到另一个页面,它将在浏览器控制台中返回404。
//main.js
// pre_id comes from another variable,its ok
pub_btn.addEventListener(`click`,() => {
fetch(`/user/new_article`,{
method: `PATCH`,headers: {
'Content-Type': 'application/json'
},body: JSON.stringify({
'event': 'publish','status': 'publish','id': pre_id
})
})
.then(response => console.log(response))
.catch(err => console.log(err))
})
//router.js
router.patch(`/new_article`,userController.article_update)
//controller.js
exports.article_update = (req,res) => {
if(req.body.event === 'publish'){
Blog.findByIdAndUpdate(req.body.id,{ 'status': req.body.status })
res.redirect(`/user/control_articles`)
}
}
解决方法
我认为您忘了定义用于/ user / control_articles的GET端点
您应该像修补程序终结点一样定义它
//router.js
router.get(`/user/control_articles`,userController.articles_get)
router.patch(`/new_article`,userController.article_update)
如果您没有忘记,请尝试等待,直到使用async / await语法解决了诺言
//controller.js
exports.article_update = async (req,res) => {
if(req.body.event === 'publish'){
await Blog.findByIdAndUpdate(req.body.id,{ 'status': req.body.status })
res.redirect(`/user/control_articles`)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。