【发布时间】:2019-08-19 03:31:22
【问题描述】:
我正在制作一个送货应用。 当我尝试在 Postman 中使用所有必需数据发布订单请求时,每个对象都会出现以下错误:
"message": "order validation failed: recipient.recLocation.recPhone: Path `recipient.recLocation.recPhone` is required., recipient.recLocation.recZipcode: Path `recipient.recLocation.recZipcode` is required., recipient.recLocation.recStreetnumber: Path `recipient.recLocation.recStreetnumber` is required., recipient.recLocation.recStreet: Path `recipient.recLocation.recStreet` is required., recipient.recLocation.recCity: Path `recipient.recLocation.recCity` is required., recipient.recName: Path `recipient.recName` is required.",
所以基本上,我的请求都没有通过。我环顾四周,根据我在这里和谷歌上以前的答案中找到的内容,我的猫鼬模型和我的路线文件似乎都很好。 这是“收件人”模型中的 sn-p:
recipient: {
//rec in front of field names stands for "recipient" - done so that the data of recipient doesn't get confused for the data of the sender
recName: {
type: String,
required: true
},
recLocation: {
recCity: {
type: String,
required: true,
max: 32
},
recStreet: {
type: String,
required: true,
max: 32
},
recStreetnumber: {
type: String,
required: true,
max: 16
},
recZipcode: {
type: String,
required: true,
max: 16
},
recPhone: {
type: String,
required: true,
max: 32
}
}
}
这是路由文件中的 sn-p:
const orderFields = {};
orderFields.user = req.user.id;
if (req.body.description) orderFields.description = req.body.description;
if (req.body.status) orderFields.status = req.body.status;
//recipient
orderFields.recipient = {};
if (req.body.recName) orderFields.recipient.recName = req.body.recName;
if (req.body.recCity) orderFields.recipient.recCity = req.body.recCity;
if (req.body.recStreet)
orderFields.recipient.recStreet = req.body.recStreet;
if (req.body.recStreetnumber)
orderFields.recipient.recStreetnumber = req.body.recStreetnumber;
if (req.body.recZipcode)
orderFields.recipient.recZipcode = req.body.recZipcode;
if (req.body.recPhone) orderFields.recipient.recPhone = req.body.recPhone;
我猜我设置路径的方式是错误的,但我是根据谷歌搜索发现的并在这里探索其他问题来做的。
提前致谢!
编辑
This is what I'm trying to pass in Postman
另外,当我把上面的sn-p从路由文件改成:
orderFields.recipient = {};
if (req.body.recName) orderFields.recipient.recName = req.body.recName;
if (req.body.recCity)
orderFields.recipient.recLocation.recCity = req.body.recCity;
if (req.body.recStreet)
orderFields.recipient.recLocation.recStreet = req.body.recStreet;
if (req.body.recStreetnumber)
orderFields.recipient.recLocation.recStreetnumber =
req.body.recStreetnumber;
if (req.body.recZipcode)
orderFields.recipient.recLocation.recZipcode = req.body.recZipcode;
if (req.body.recPhone)
orderFields.recipient.recLocation.recPhone = req.body.recPhone;
我得到一个不同的错误: 2nd Postman screenshot
【问题讨论】:
-
您的 POST 请求可能有问题。您能否编辑您的问题并添加您发送的具体内容?
-
@MrMister 我添加了我要发送的内容
标签: node.js validation express mongoose mongoose-schema