我得到了一个moongose架构 -
const allPromises= [];
for (let i = 0; i < loopLength; i+=1) {
allPromises.push(executeQuery(querystring));
}
Promise.all(allPromises).then((result) => {
// code here
}
如果我在例如邮递员,如果我提交空对象,它会正确地抛出一个错误:
mongoose.Schema(
{
companyName: {
type: String,
required: true
}
},
{
companyEmail: {
type: String,
required: true
}
},
{
companySite: {
type: String,
required: true
}
})
但是,如果我只输入"Path 'companyName' is required.",
,即使我没有输入companyName
或companyEmail
,也要求正确处理帖子请求。寻求帮助。
答案 0 :(得分:1)
如果您正在使用html表单数据,这些字段仍会被处理为空字符串&#34;&#34;。在后端,我会检查companyName.length&gt; 0,并在将数据插入mongodb之前处理错误
答案 1 :(得分:1)
mongoose.Schema
函数只接受一个描述数据模型的参数。但是,在JS中,在函数调用时没有验证参数的数量,因此使用三个参数的调用不会失败,只是忽略了最后两个。有效地,您的代码创建的架构仅包含companyName
字段。
您应该像这样创建架构,以使其验证(并荣誉)所有三个字段。
mongoose.Schema({
companyName: {
type: String,
required: true
},
companyEmail: {
type: String,
required: true
},
companySite: {
type: String,
required: true
}
});