我正在尝试测试我的 Api 更新,当更新不存在时任务返回此响应
{
"msg": "Task Updated Successfully",
"data": null
}
删除任务控制器
const deleteTask = asyncHandler(async (req, res) => {
const tasks = await taskModel.findByIdAndDelete(req.params.id);
res.status(200).json({ msg: "A Task Deleted Successfully", data: "" });
});
错误处理中间件
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Internal Server Error');
});
如果任务不存在,如何处理消息以发送 anthor 消息
findByIdAndDelete()
将返回null
,因此可以检查是否不是null
,如下所示:
const deleteTask = asyncHandler(async (req, res) => {
const tasks = await taskModel.findByIdAndDelete(req.params.id);
if(!tasks){ //< tasks will be null if no matching document
return res.status(200).json({ //< early return
msg: 'No document found'
});
}
res.status(200).json({ msg: "A Task Deleted Successfully", data: "" });
});
orFail()
方法,如下所示:
const deleteTask = asyncHandler(async (req, res) => {
const tasks = await taskModel.findByIdAndDelete(req.params.id).orFail(() =>{
return res.status(200).json({ //< early return
msg: 'No document found'
});
})
res.status(200).json({ msg: "A Task Deleted Successfully", data: "" });
});