我尝试创建API以使用mongoose删除mongodb上的文档。
这是我的路线
router
.route("/tasks")
.delete('/:id', function (res, err) {
taskSchema.findByIdAndRemove(req.params.id, (err, tasks) => {
if (err) return res.status(500).send(err);
const response = {
message: "Todo successfully deleted",
id: req.params.id
};
return res.status(200).send(response);
});
});
我收到此错误
错误:Route.delete()需要一个回调函数,但得到一个[object String]
答案 0 :(得分:1)
/tasks
和/tasks/:id
是两条不同的路线,你应该这样处理它们,如果你使用/tasks
来显示所有任务,为它做一条路线,并建立第二条路线对于您已拥有ID的每次互动;也就是说删除,更新和使用没有ID的路由,用于没有ID的交互,比如创建任务:
router
.route("/tasks")
.get(/* return all tasks */)
.post(/* create a task */);
router
.route("/tasks/:id")
.delete(function (req, res) {
taskSchema.findByIdAndRemove(req.params.id, (err, tasks) => {
if (err) return res.status(500).send(err);
const response = {
message: "Todo successfully deleted",
id: req.params.id
};
return res.status(200).send(response);
});
});