【发布时间】:2018-12-04 07:49:28
【问题描述】:
我正在通过 mongo/mongoose 创建一个 POST 方法:
Department
.create({
name: req.body.name,
link: req.body.link,
state: req.body.state,
requirements: req.body.requirements,
salary: req.body.salary,
description: req.body.description
})
requirements 是一个包含其他项目的对象:
requirements: {
age: 21,
citizenship: "yes",
degree: "4-year"
}
在创建之前,我正在检查是否提供了所有字段:
router.post('/create', (req, res) => {
const requiredFields = ["name", "link", "state", "age", "citizenship", "degree" "salary", "description"];
for(let i=0; i < requiredFields.length; i++){
const field = requiredFields[i];
if(!(field in req.body)){
const message = `Missing \`${field}\` field in request body`;
console.error(message);
return res.status(400).send(message);
};
};
由于age、citizenship 和degree 是对象项,我不能将它们的字符串放在 requiredFields 中。它在Missing age field in request body 处出错。知道如何检查它们是否在 req.body 中提供吗?
【问题讨论】:
-
我将使用 revalidator 之类的东西来验证请求正文。
标签: javascript arrays mongodb mongoose