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

Express配置app.post路由访问返回Cannot GET /customers错误如何解决

Express注册接口报错Cannot GET /customers 解决方案

核心原因

你收到Cannot GET /customers错误的根本原因是Postman发起请求的HTTP方法与后端接口定义的方法不匹配:
你后端代码中定义的是app.post("/customers"),仅接受POST类型的请求,但你在Postman中误选了GET方法发起请求,Express找不到匹配的GET /customers路由,就返回了该错误。

排查解决步骤

  • 调整Postman请求方法
    打开对应请求的Postman标签页,在请求URL左侧的方法下拉选项中,将默认的GET切换为POST,重新发送请求即可匹配到你编写的接口。
  • 补充接口默认返回逻辑
    你目前的代码仅在邮箱重复时做了返回处理,邮箱不重复的场景下没有返回逻辑,会导致请求超时,可在接口逻辑末尾补充测试返回:
    if(existingUser[0]){return res.status(409).send("duplicate email")};
    // 新增以下代码
    res.status(200).send("邮箱校验通过,可继续执行用户新增逻辑")
    
  • 修复SQL注入风险
    你当前直接将用户输入的邮箱拼接进SQL语句,存在严重的SQL注入风险,建议改为参数化查询(根据你使用的数据库连接工具规范调整即可):
    // 替换原有SQL拼接写法
    let emailCheckQuery = `
    SELECT customer_email
    FROM Customer
    WHERE customer_email = ?`;
    let existingUser = await db.executeQuery(emailCheckQuery, [email]);
    
  • 新增异常捕获逻辑
    你的异步数据库查询逻辑没有做异常捕获,数据库操作报错时会抛出未捕获异常导致服务崩溃,建议用try/catch包裹异步逻辑:
    app.post("/customers", async(req, res) => {
      try {
        // 原有接口逻辑全部放到此处
      } catch (err) {
        console.error("接口请求错误:", err)
        res.status(500).send("服务器内部错误")
      }
    })
    
  • 验证请求头配置
    确保Postman请求的Header中配置了Content-Type: application/json,否则express.json()中间件无法正常解析请求体,会导致req.body为undefined。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:03