When I check the checkbox on my to do list I get an error that say "Model.findByIdAndRemove() no longer accepts a callback".
当我选中待办事项列表上的复选框时,我收到一个错误,显示“Model.findByIdAndRemove()不再接受回调”。
I am trying to make it so that when an item is checked it is removed from my to do list.
我正在尝试这样做,这样当一项被选中时,它就会从我的待办事项列表中删除。
app.post("/delete", function (req, res) {
const checkedItemId = req.body.checkbox;
Item.findByIdAndRemove(checkedItemId, function (err) {
if (!err) {
console.log("Successfully deleted checked item");
res.redirect("/");
}
});
});
更多回答
优秀答案推荐
This can be easily rolsolved by using async/await
pattern, and findByIdAndDelete
method like so:
这可以通过使用异步/等待模式和findByIdAndDelete方法轻松解决,如下所示:
app.post("/delete", async (req, res) => { //< Note the use of async and arrow function
try { //< Use a try/catch block for cleaner error handling
const checkedItemId = req.body.checkbox;
const deletedItem = await Item.findByIdAndDelete(checkedItemId); //< Note the use of await keyword
console.log("Successfully deleted checked item:", deletedItem);
res.redirect("/");
} catch(err){
console.log('Error:', err);
//Send error message to front-end
}
});
The findByIdAndDelete
method fires the findOneAndDelete
middleware, which has a useful number of options. See here for the docs.
FindByIdAndDelete方法触发findOneAndDelete中间件,该中间件具有许多有用的选项。请看这里的文档。
更多回答
我是一名优秀的程序员,十分优秀!