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

Express查询Postgres时GET请求失效POST正常,该如何排查解决?

你遇到的报错本质是前端尝试把返回的HTML内容当成JSON解析,GET请求没有命中你写的业务接口,而是返回了其他HTML资源(最常见的是404页面、SPA应用的首页index.html)。

核心原因

Express的路由匹配是严格按注册顺序执行的,你大概率是把/pledges的GET路由注册在了静态资源中间件、SPA通配符 fallback 路由(比如app.get('*', ...)返回index.html的配置)之后:GET请求发送后会先命中前面的通配符GET路由,直接返回HTML,自然无法解析成JSON。而POST请求不会匹配到GET类型的通配符路由,所以能正常走到你写的POST接口返回JSON数据。

排查&修复步骤

  • 打开浏览器开发者工具的「网络」面板,找到/pledges的GET请求,查看响应内容确认是不是HTML文件,同时确认状态码。
  • 调整Express的路由注册顺序,把所有业务接口的注册逻辑放在静态资源中间件、通配符路由之前,示例:
// 正确顺序:先注册业务接口
const pledgesRouter = require('./你的router文件路径');
app.use('/pledges', pledgesRouter);

// 再注册静态资源和SPA fallback逻辑
app.use(express.static('dist'));
app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'dist', 'index.html'));
});
  • 确认路由挂载的路径拼写没有错误,/pledges前缀和前端请求路径一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:04