微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我res.redirect`/ relative / url`时,收到的响应是PATCH 404 Not found如何解决这个问题?

如何解决当我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`)
  }
}

enter image description here

解决方法

我认为您忘了定义用于/ 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 举报,一经查实,本站将立刻删除。