首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Mongo中删除时后端崩溃而没有错误

从Mongo中删除时后端崩溃而没有错误
EN

Stack Overflow用户
提问于 2020-11-15 17:19:00
回答 1查看 80关注 0票数 0

第一个问题,不知道要搜索什么才能找到解决方案,所以就这样吧。

我正在使用React、Mongo、Express、Node。

PatientDetails.js

这就是我在打开详细信息卡片时获取特定患者的方式。

代码语言:javascript
运行
复制
useEffect(() => {
    fetch(`/api/patients/${match.params.id}`)
    .then(response => response.json())
    .then(json => setPatient(json))

}, [patient])

这就是我如何使用onclick方法删除患者详细信息卡片上的评论。

代码语言:javascript
运行
复制
const deleteNote = (noteID) => {
    fetch(`/api/patients/${patient._id}/notes/${noteID}`, {
      method: 'DELETE',
    })
    .then(response => response.json())
};

这是我的API路由。

代码语言:javascript
运行
复制
// @route DELETE api/patients/:id/notes/:noteId
// @desc Delete a note

router.delete('/:id/notes/:noteId', async (req, res) => {
    const {id, noteId} = req.params
    await Patient.findByIdAndUpdate(id, {$pull: {notes: noteId}});
    await Note.findByIdAndRemove(noteId);
})

我可以删除3-4个评论之前,页面只是结束加载永远,我得到没有错误的前端或后端,我必须重新启动我的后端服务器,然后我能够删除3-4个评论之前,这种情况再次发生。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-15 18:07:21

您在前端和后端都有一些问题:

在React组件中,您应该将match.params.id添加为钩子的依赖项:

代码语言:javascript
运行
复制
useEffect(() => {
    fetch(`/api/patients/${match.params.id}`)
    .then(response => response.json())
    .then(json => setPatient(json))

}, [match.params.id])

在Express中间件中,您应该在修改数据库后发送响应:

代码语言:javascript
运行
复制
router.delete('/:id/notes/:noteId', async (req, res) => {
    const {id, noteId} = req.params
    await Patient.findByIdAndUpdate(id, {$pull: {notes: noteId}});
    await Note.findByIdAndRemove(noteId);
    res.status(200).send({});
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64842809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档