MERN项目仅GET根路由可用,POSTMAN测试其他接口返回404、400错误
访问/api/fruit/test返回404问题
你访问的路径存在拼写错误,app.js中注册的fruits子路由前缀为/api/fruits,你拼写时遗漏了末尾的s,使用正确路径/api/fruits/test即可正常访问。
PUT路由404问题
你在fruits.js中定义的PUT路由参数写法错误,原代码冒号位置写反:
router.put(':/id', (req, res) => {
修正为以下写法即可正常解析路由参数:
router.put('/:id', (req, res) => {
POST /api/fruits/返回添加失败问题
按优先级排查以下原因:
- 检查Postman请求配置:确认请求头
Content-Type设置为application/json,Body中提交的JSON格式正确,字段名称、类型完全匹配Fruit模型的定义,必填字段无缺失。 - 确认数据库连接正常:在数据库连接逻辑
connectDB中添加错误/成功日志,确认MongoDB连接无异常,数据库连接失败会直接导致模型操作报错。 - 打印具体错误信息:在POST路由的catch回调中添加
console.log(err),即可查看是字段校验失败、数据库权限问题还是其他具体原因导致的创建失败。
可选优化:CORS配置拼写修正
你app.js中的cors配置存在拼写错误,credentails少写了一个i,正确写法为credentials,后续前端跨域请求带Cookie时会用到该配置:
app.use(cors({origin: true, credentials: true}));
内容的提问来源于stack exchange,提问作者MaddyHarrop
相关产品推荐
相关产品推荐

