gpt4 book ai didi

javascript - 当我使用 DELETE 方法时,即使 id 不存在,我也获得了 JSON 响应的成功

转载 作者:行者123 更新时间:2023-11-30 11:01:40 28 4
gpt4 key购买 nike

我想通过他们的 ID 删除一个项目,但我得到了一个成功的响应,即使 ID 不存在。

exports.deleteItemById = (req, res, next) => {

Item.findByIdAndDelete(req.params.id, (error, item) => {
if(error){
return res.status(201).json({
success: false,
message: "Item could not be found"
})
}
res.status(200).json({
success: true
});
});
};

例如,如果我使用以下项目 ID:5d540f7c69a372ddc13dc77f 使用 Postman 删除其中一项,它会工作并删除该项目并显示“成功:true”作为 JSON 响应,但在下一次尝试中,如果我使用相同的 ID,我仍然得到“成功:真”这不是我想要的结果。如果 ID 不再存在,我想收到“无法找到项目”消息。

最佳答案

mongoose docs说:

  1. findByIdAndDeletefindOneAndDelete
  2. 的别名
  3. findOneAndDelete “找到匹配的文档,将其删除,并将找到的文档(如果有)传递给回调。”

因此,只需检查是否返回了一个文档 (item):

exports.deleteItemById = (req, res, next) => {

Item.findByIdAndDelete(req.params.id, (error, item) => {
if(!item){
return res.status(201).json({
success: false,
message: "Item could not be found"
})
}
res.status(200).json({
success: true
});
});
};

关于javascript - 当我使用 DELETE 方法时,即使 id 不存在,我也获得了 JSON 响应的成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57496576/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com