reactjs - 如何解决从 mongodb 中删除项目的问题?
问题描述
我试图从 mongodb 中删除一个项目但失败了。
这是服务器端代码:
// to delete single data
app.delete("/delete/:id", (req, res) => {
console.log(id);
tasksCollection
.deleteOne({ _id: ObjectId(req.params.id) })
.then((result) => {
res.send(result.deletedCount > 0);
console.log(result);
});
});
这是客户端代码:
function deleteProduct(id) {
console.log(id);
fetch(`http://localhost:5000/delete/${id}`, {
method: "DELETE",
})
.then((res) => res.json())
.then((result) => {
console.log(result);
});
}
以及从服务器站点显示的错误:
ReferenceError: id is not defined
以及从客户端站点显示的错误:
DELETE http://localhost:5000/delete/5f780abe7ce75b5be88ebd44 500 (Internal Server Error)
localhost/:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
这是我的点击处理程序:
<div>
<h3>This is home</h3>
{showTasks.map((showTask) => (
<div>
<h4>{showTask.name}</h4>
<button onClick={() => deleteProduct(`${showTask._id}`)}>
Delete tasks
</button>
</div>
))}
</div>
在客户端站点代码中,我有 console.log(id)。如果我单击删除任务按钮,我可以获得任务的特定 id,但问题出在获取中。所以 id 没有在服务器站点代码中定义。任何人都请帮助我如何解决这个问题???
解决方案
错误在你的console.log(id)
,应该是console.log(req.params.id)
。由于 id 没有在那里定义,它会给你错误:ReferenceError: id is not defined
尝试这个:
// to delete single data
app.delete("/delete/:id", (req, res) => {
console.log(req.params.id); //req.params.id instead of id
tasksCollection
.deleteOne({ _id: ObjectId(req.params.id) })
.then((result) => {
res.send(result.deletedCount > 0);
console.log(result);
});
});
此外,您在客户端遇到的错误是因为res.json()
您获得的响应不是字符串化的 json,所以您可能不会这样做,而只是尝试打印res
推荐阅读
- angular - 在主逻辑之前处理所有响应
- azure - 自定义应用程序的 Microsoft Teams 消息扩展图标不断消失
- ios - 具有动态缩放单元格的 UICollectionView
- java - doFinally 是否在 Reactor 中的同一线程上执行
- javascript - 为什么我的属性值没有改变?
- python - Pandas Dataframe - 无循环的组件和子组件编号系统
- java - 我怎样才能列出清单
- mysql - MySQL 8:使用 JSON_TABLE 解压缩任意 JSON 键值对
- scala - Spark Structure Streaming 无法从 Kafka 主题中读取消息
- sharepoint-online - 尝试使用 CSOM 和 c# 上传到 sharepoint 在线库时出现 400 Bad Request 错误