You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Node.js从MongoDB删除记录的接口浏览器访问无响应求助

问题原因

核心问题是请求方法不匹配:

  • 你定义的路由仅支持POST请求:router.post("/delete/:studentEmail",sdeleteRecord);
  • 浏览器直接在地址栏输入URL时,发起的是GET请求,服务器没有对应的GET路由处理该请求,因此会一直处于等待状态,无响应返回。
解决方案

有两种处理方式,推荐遵循REST规范的方案:

  • 方式一(不推荐,存在安全风险):修改路由支持GET请求
    // 仅支持GET
    router.get("/delete/:studentEmail",sdeleteRecord);
    // 同时支持POST和GET
    router.all("/delete/:studentEmail",sdeleteRecord);
    
  • 方式二(推荐):规范请求方式
    不要用浏览器直接访问,继续使用Postman发送POST请求调用接口;如果需要前端页面触发删除,可通过设置method="POST"的表单,或者用AJAX发送POST请求。
代码优化建议

你的代码还有两处可以完善:

  1. console.log('doc');只会打印字符串'doc',改为console.log(doc);才能查看删除的文档内容
  2. 增加错误捕获,避免异步操作出错导致服务器挂起:
const sdeleteRecord = ("/delete/:studentEmail", async (req, res) => {
  try {
    const paramsValue = req.params['studentEmail'];
    console.log(paramsValue);
    const filter = { studentEmail: paramsValue };
    console.log(filter);
    const doc = await studentInfo.findOneAndDelete(filter);
    console.log(doc);
    if (doc) {
      res.send('successfully deleted');
    } else {
      res.status(404).send('Record not found');
    }
  } catch (err) {
    console.error(err);
    res.status(500).send('Delete failed due to server error');
  }
});

内容的提问来源于stack exchange,提问作者subha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 14:15:56