{ if (er-6ren">
gpt4 book ai didi

javascript - Mongoose "delete"怎么能有不存在的文件?

转载 作者:可可西里 更新时间:2023-11-01 09:11:13 28 4
gpt4 key购买 nike

代码:

function deleteItem(req, res) {
Goods.findByIdAndRemove(req.params.id, (err) => {
if (err) {
res.send({
success: false,
error: err
});
} else {
res.send({
success: true,
item: req.params.id
});
}
})
}

如果我传递刚刚删除文档的 _id - Mongoose 会成功“删除”它。
如果我传递一个从未存在过的文档的 _id,例如 591dad9a1583ea0d1065d633 - 它也会“删除”它。

仅当传递像 a34pnv530eargdzbs 这样的垃圾时才会抛出错误。

有人能告诉我,这是怎么回事吗? :)

最佳答案

如果您查看相关的 Mongoose 文档,您会发现其背后的原因:

Finds a matching document, removes it, passing the found document (if any) to the callback. http://mongoosejs.com/docs/api.html#model_Model.findByIdAndRemove

如果您的数据库中不存在该文档,Mongoose 不会抛出错误。您应该检查回调的第二个参数:

Goods.findByIdAndRemove(req.params.id, function(err, doc) {
if(err || !doc) {
// Show an error page
}
});

关于javascript - Mongoose "delete"怎么能有不存在的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44051666/

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