node.js - 无法使用 NodeJS 中猫鼬的 Item.removeOne() 或 Item.findByIdAndRemove() 方法从待办事项列表中删除项目
问题描述
我正在使用 mongodb、node.js、express 和 EJS 制作待办事项列表。我被卡住的部分是我无法从列表和数据库中删除和项目。这个想法是,单击复选框时,旁边的项目将被删除。这是相同的布局,[https://i.stack.imgur.com/83gMW.png][1]
我在我的 EJS 文件中进行了必要的更改,以创建一个“/delete”路由,如下所示:
<%for(var i=0;i<taskslist.length;i++){%>
<form action="/delete" method="POST">
<div class="item">
<input type="checkbox" name="checkitem" value="<%= taskslist[i]._id %> " onChange="this.form.submit()">
<p><%= taskslist[i].activity %> </p>
</div>
</form>
<%}%>
在我的 app.js 文件夹中,我还使用 mongoose 的 findByIdAndRemove( ) 方法进行了必要的更改:
app.post("/delete", function (req, res) {
const delitem = req.body.checkitem;
Item.findByIdAndRemove(delitem, function (err) {
if (err) {
console.log("Error");
} else {
console.log("Succesfully deleted" + delitem);
res.redirect("/");
}
});
console.log(delitem);
});
但是,该项目没有从数据库中删除,并且终端中显示错误,即使 console.log(delitem) 正在工作并返回选中复选框的项目的 ID。我还给出了我在终端得到的输出的截图:[https://i.stack.imgur.com/hGEkn.png][1]
所有与添加项目和创建数据库相关的方法都在工作。我不明白错误在哪里。这个你能帮我吗。
解决方案
推荐阅读
- javascript - 如何使用 Promise 等待函数执行以等待其在 Javascript/Node JS 中的回调
- php - 如何在 laravel 构建器上执行“解释选择”
- codenameone - 禁用 PeerComponent 的滚动 (GoogleMap)
- c# - Cefsharp 如何显示新添加的 PrintPreview
- java - 什么偏移量用于从 Postgres 时间戳TZ 中解组 OffsetDateTime?
- java - 如何验证 Kafka 消费者是否收到了消息
- graphql - 如何在反应钩子中使用graphql钩子集成多个客户端
- wpf - Powershell 中的 WPF 网格在高度上被削减
- android - 如何在 android 中加载高质量的 favicon?
- kubernetes - 从 Helm 图表生成 docker-compose.yaml