You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node Express中Post API调用出现Product Validation Failed错误

问题解决:Post接口触发Mongoose验证失败错误

错误信息翻译

产品验证失败:category:路径category是必填项。,price:请输入产品价格,description:请输入产品描述,name:路径name是必填项。

核心原因与解决方案

1. Express未配置JSON请求体解析中间件

Express默认不会自动解析JSON格式的请求体,导致req.body为空对象,执行Product.create(req.body)时所有必填字段都被判定为缺失。

修复步骤:
在你的Express主入口文件(如app.js/server.js)中,在路由注册前添加以下中间件:

const express = require('express');
const app = express();

// 解析JSON格式请求体
app.use(express.json());
// 可选:解析URL编码格式的请求体(若需支持form-data)
app.use(express.urlencoded({ extended: true }));

// 注册路由(确保在中间件之后)
app.use('/api', require('./routes/routes.js'));

2. 模型字段拼写错误

检查models.js中的stock字段,你将required拼写成了requird,导致该字段的必填验证失效:

// 错误写法
stock:{
    type:Number,
    requird:true,
    default:1
},

修正为:

stock:{
    type:Number,
    required:true,
    default:1
},

Postman请求验证

发送POST请求时需确保:

  • 请求方法选择POST
  • 请求URL与路由配置匹配(如http://localhost:3000/api/product/new)
  • 请求体选择raw -> JSON格式,传入完整必填字段,示例:
{
    "name": "测试手机",
    "description": "一款高性能智能手机",
    "price": 2999,
    "category": "电子产品",
    "stock": 50
}

内容的提问来源于stack exchange,提问作者Malik Naveed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:27:20