我正在使用包含 2 個欄位的過濾器進行洗掉操作:
const query = await Flow.deleteOne({
_id: flowId,
permissions: currentUser!.id,
});
然后我檢查從該操作回傳的查詢物件以確定操作是否成功:
if (!query.deletedCount) {
throw new BadRequestError("Flow not found");
}
問題是我不知道操作是否因為 flowId 錯誤(第一個過濾欄位)或用戶沒有權限(第二個過濾欄位)而失敗。
是否可以選擇在貓鼬中獲得更詳細的查詢結果?
uj5u.com熱心網友回復:
從官方檔案可以看出,deleteOne回傳一個具有三個屬性的物件:
ok1如果沒有錯誤deletedCount洗掉的檔案數n洗掉的檔案數
如果您需要調查失敗的原因,您可以查詢資料庫以防出錯,例如:
if (!query.deletedCount) {
const flow = await Flow.findById(flowId);
// wrong `flowId`
if (!flow) throw new BadRequestError("Flow not found");
// otherwise, user don't have permission
throw new BadRequestError("Unauthorized");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/506425.html
上一篇:HTML:iframe
