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

Express+Sequelize+MySQL项目/products接口报Cannot GET错误如何解决

问题解决方法

你遇到的Cannot GET /products错误核心是Express路由前缀注册时缺少前导斜杠导致路由匹配失败,修复步骤如下:

1. 修复入口文件路由注册规则

找到server.js中的路由注册代码:

app.use("products", productRouter);
/* app.use("variant", variantRouter); */

修改为带前导斜杠的路径前缀:

app.use("/products", productRouter);
/* app.use("/variant", variantRouter); */

Express的路由匹配规则要求,路由前缀如果要匹配根路径下的子路由,必须以/开头,否则会按照相对路径规则匹配,无法命中你请求的/products路径。

其他可同步修复的潜在问题

  • 产品路由GET方法注释代码存在变量名错误:注释逻辑中定义的变量是products,但判断条件写的是if (product),后续启用该逻辑时需要修正变量名避免报错。
  • Product模型的时间戳配置属性名错误:你配置的{timestamp: false}属性名应为复数{timestamps: false},否则无法关闭Sequelize自动生成createdAt、updatedAt字段的逻辑。
  • 产品POST接口异常无返回:当前POST接口捕获异常后仅打印日志,未给前端返回响应,会导致前端请求超时,建议补充异常返回逻辑:
router.post("/", async (req, res) => {
    try {
        const product = await Product.create(req.body);
        res.send(product)
    } catch (error) {
        console.log(error);
        // 补充异常返回
        res.status(500).send({message: '产品创建失败', error: error.message})
    }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:36:10