Node.js Express路由配置异常:POST请求返回404 Not Found
问题排查与修复方案
你的404问题源于路由挂载路径与路由内部定义路径不匹配,具体错误点和修复步骤如下:
错误分析
主应用路由挂载错误:
你在主文件中将userRouter挂载到了/user/sign-up路径:app.use("/user/sign-up", userRouter);但你的请求路径是
/shopping-cart/user/sign-up,userRouter并未挂载到/shopping-cart前缀下,自然无法匹配请求。路由内部路径重复定义:
userRouter内部又定义了/user/sign-up的POST路由:router.post("/user/sign-up", async (req, res) => { ... });结合错误的挂载路径,实际生效的路径会变成
/user/sign-up/user/sign-up,和请求路径完全不符。
修复步骤
步骤1:修正主应用的路由挂载
将userRouter挂载到/shopping-cart前缀下,匹配请求的路径前缀:
// 替换原有错误的挂载代码 app.use("/shopping-cart", userRouter);
步骤2:验证路由匹配逻辑
修正挂载后,userRouter内部的/user/sign-up路由会和前缀组合成/shopping-cart/user/sign-up,刚好匹配你的请求路径,无需修改路由内部代码。
额外注意事项
确保setServerConfiguration(app)中已配置express.json()中间件,否则req.body会为空,导致用户创建失败:
// setServerConfiguration函数中需包含该配置 app.use(express.json());
重启服务后,重新发送POST请求即可正常访问接口。
内容的提问来源于stack exchange,提问作者Lior98
相关产品推荐
相关产品推荐

