用户注册接口POST请求404错误排查求助(附全栈代码)
注册接口404错误排查方案
问题现象
注册用户时触发404错误,请求地址为 POST http://localhost:5173/api/v1/user/register,同时返回AxiosError:AxiosError {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST'...}
排查与解决步骤
1. 修复Vite代理配置(核心问题)
前端使用Vite构建工具,package.json中的proxy配置是Create React App的写法,Vite不支持该配置方式,需在vite.config.js中重新配置代理:
在client目录下创建/修改vite.config.js:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], server: { proxy: { '/api': { target: 'http://localhost:8070', changeOrigin: true, }, }, }, })
修改后重启前端开发服务。
2. 确认后端服务状态
检查后端是否在8070端口正常启动:
- 执行
npm run server启动后端 - 查看控制台是否输出
Server running in xxx mode on port 8070日志,确保服务无启动报错
3. 验证请求地址正确性
若代理配置未生效,可临时在前端请求中直接使用后端完整地址测试:
// 将请求地址改为 axios.post('http://localhost:8070/api/v1/user/register', formData)
如果此方式能正常请求,说明代理配置未生效,回到步骤1确认配置。
4. 核对后端路由挂载
检查server.js中的路由挂载逻辑:
app.use('/api/v1/user', require('./routes/userRoutes'))
该配置将userRoutes中的路由拼接为/api/v1/user/register,路由路径配置正确,无需修改。
5. 检查文件路径匹配
根据文件夹结构,确认server.js中require('./routes/userRoutes')对应的文件是否存在(根目录routes文件夹下的userRoutes.js),避免文件路径错误导致路由未加载。
额外优化点
userController.js中模型导入存在文件名错误:const userModel = require('../models/userModels'),应改为../models/userModel(对应实际文件userModel.js),否则会触发500错误loginController为空函数,后续需补充实现逻辑
内容的提问来源于stack exchange,提问作者Mustafa Mulla
相关产品推荐
相关产品推荐

