不对Mongoose模式中的错误类型执行验证

时间:2017-06-14 05:42:21

标签: node.js validation mongoose mongoose-schema

以下是相关的架构路径:

foo : {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Foo',
    validate: {
        validator: mongoose.Types.ObjectId.isValid,
        type: 'custom',
        message: 'proper foo is required'
    }
},
bar {
    type: Number,
    required: 'bar should be specified'
}

foo作为空字符串(默认值)提交时,会抛出验证错误:

  

“在路径”foo“...

中,对于值”“,”转换为ObjectID失败“

在这种情况下不会触发验证器。即使validator更改为() => false,也无法提供可读的message

但是当提供null而不是空字符串时它会变得很好。如果只能通过验证来处理,我宁愿避免预处理foo

相同的错误出现在数字字段bar

  

对于路径“bar”的值“未定义”,转换为数字失败...

为什么没有触发验证器?这种行为是可配置的吗?如何在这里处理不正确的数据类型,因此可以给出人性化的信息?

0 个答案:

没有答案