Axios向Express后端发起POST请求返回404错误排查求助
问题根因
你遇到的404报错属于「路由匹配成功但未结束请求流程」导致的问题:
服务端控制台能打印控制器日志说明路由路径匹配完全正确,问题出在控制器逻辑执行完成后,你调用了next()将请求传递给了后续中间件/路由,没有匹配到其他处理逻辑时,Express会走默认的404中间件返回404状态码。
修复方案
修改controllerAdmin.js内的处理逻辑,不要调用next(),直接给客户端返回响应即可:
exports.postREQ_adminCreatePost = (req, res, next) => { console.log('hello from controller'); // 直接返回响应,结束请求流程 res.status(200).json({ msg: "创建成功" }) }
额外排查点(修改后仍有问题可核对
- 确认Express入口文件(如app.js)中注册该路由的逻辑没有重复前缀:
如果你注册路由时写的是app.use('/admin', yourRouter),那router内部的路由定义要去掉开头的/admin,否则最终路径会变成/admin/admin/posts/create-post,不过你已经能打印控制器日志说明当前路径匹配是正常的,该问题概率极低。 - 确认你已经配置了Express的JSON解析中间件,否则拿不到POST请求体也可能触发异常:
入口文件提前配置:app.use(express.json())
内容的提问来源于stack exchange,提问作者zachary
相关产品推荐
相关产品推荐

