【问题标题】:Delete error in CRUD RESTful API(Node.js , Express, Mongodb)删除 CRUD RESTful API 中的错误(Node.js、Express、Mongodb)
【发布时间】:2020-03-13 08:47:52
【问题描述】:

我在这个例子中使用了猫鼬。尝试删除时,向我显示以下错误
Cannot DELETE /5e69e2fde0fa464ee01dd68d

我终其一生都无法弄清楚出了什么问题。我是 Node.js、MongoDB 和创建 RESTful API 的初学者 下面给出的代码是我用来删除的函数。

router.delete('/:id', getSubscriber, async (req, res) => {
    try {
      await res.subscriber.remove()
      res.json({ message: 'Deleted Subscriber' })
    } catch (err) {
      res.status(500).json({ message: err.message })
    }
  })

这里是 getSubscriber 函数

async function getSubscriber(req, res, next) {
  let subscriber
  try {
    subscriber = await Subscriber.findById(req.params.id)
    if (subscriber == null) {
      return res.status(404).json({ message: 'Cannot find subscriber' })
    }
  } catch (err) {
    return res.status(500).json({ message: err.message })
  }

  res.subscriber = subscriber
  next()
}

感谢任何帮助。感谢您的宝贵时间。

【问题讨论】:

  • 你能在router 所在的位置分享你的代码吗?用过的?好像api路径无效。
  • DELETE http://localhost:3000/5e69e2fde0fa464ee01dd68d 我认为这段代码是正确的,因为具有相同参数的其余函数工作正常。

标签: node.js mongodb express mongoose crud


【解决方案1】:
router.delete('/:id', getSubscriber, async (req, res) => {
try {

   //Here try creating an instance of your model.
   //I think your schema is named subscriber so
   const deleteSuscriber = await Suscriber.remove({_id:req.params.id});
   res.json(deleteSuscriber);

} catch (err) {
  res.status(500).json({ message: err})
}
});

这里 express 会将变量放在 req.params 中,形成传入的请求。 希望这可行!
Here you can find the documentation on making CRUD Rest API

【讨论】:

  • 好吧,所以我尝试更改删除功能,但它没有工作。但是,由于我没有做太多工作,所以我从头开始,使用您链接的博客文章,它就像一个魅力。谢谢。
猜你喜欢
  • 2021-08-27
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 2014-03-16
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
相关资源
最近更新 更多