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

本地Postman调用Express API的GET/POST请求均返回404错误

问题排查方案

1. 确认服务器路由与运行状态

  • 修改App.js添加POST路由后,必须重启Node服务器,否则新路由不会生效。
  • 检查路由注册顺序:如果有全局404处理中间件(比如app.use((req,res)=>res.sendStatus(404))),要确保它在app.post("/articles", ...)之后,否则会优先匹配404逻辑。
  • 验证/articles路由是否真的被加载:可以在app.post路由里先加一行console.log("POST /articles route hit"),重启服务器后看启动日志是否有异常,或者尝试访问一个肯定存在的测试路由(比如根路径)确认服务器正常运行。

2. 检查Postman请求细节

  • 确认请求方法:顶部必须选对应方法(POST/GET),不要选错成PUT、DELETE等。
  • 核对请求地址:确保是http://localhost:4000/articles,没有拼写错误(比如少写s、端口误写为3000等),可以直接复制浏览器中能访问的根地址,再手动添加/articles后缀测试。
  • 确认Body配置:选x-www-form-urlencoded后,检查title和content的键值对是否正确填写,没有多余空格或特殊字符。

3. 必要中间件补充

虽然当前404是路由匹配问题,但后续要读取req.body,必须在所有路由之前添加URL编码解析中间件:

// 放在app.post路由之前
app.use(express.urlencoded({ extended: true }));

缺少这个中间件会导致req.body为undefined,但不会引发404错误。

4. 代理设置说明

保持Postman的USE SYSTEM PROXY关闭是正确的,localhost请求不需要通过系统代理,这个设置无需调整。

额外测试建议

在App.js中添加一个简易测试路由,验证服务器响应能力:

app.get("/test", (req, res) => {
  res.send("测试路由正常响应");
});

用Postman访问http://localhost:4000/test,如果能返回内容,说明服务器运行正常,问题集中在/articles路由的注册环节;如果仍返回404,说明服务器可能未在4000端口运行,或端口被其他程序占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:43:19