Mongoose新增Bootcamp接口传全必填字段仍报校验错误如何解决?
问题排查解决步骤
1. 优先检查Express JSON解析中间件配置
这是你当前报错最可能的原因:你没有在Express主入口文件(一般是app.js/server.js)中开启JSON请求体解析,导致req.body为空对象,Mongoose自然检测不到你传入的name/description/address字段,抛出必填校验错误。
请在你的路由注册代码之前添加这行配置:
app.use(express.json())
2. 检查Postman请求配置
确认你在Postman中发送请求时的两个配置:
- 选择
raw格式提交数据后,右侧的格式选项要选择JSON,不要用默认的Text - 请求头中会自动带上
Content-Type: application/json,如果没有请手动添加
3. 其他需要修复的代码问题
你当前的报错解决后,还会遇到其他校验错误,需要提前修改:
- 你请求中传入的
careers包含"Business"值,但是Schema中careers的枚举可选值只有Web Development/Mobile Development/UI/UX/Data Science/Other,请将Business替换为Other,或者在枚举数组中新增Business选项 - Schema中
jobGuarrantee字段拼写错误(多写了一个r),你请求中传的是正确拼写的jobGuarantee,会导致这个字段无法正确存入数据库,保持两端拼写一致即可
内容的提问来源于stack exchange,提问作者Hamid Ayub
相关产品推荐
相关产品推荐

