Mongoose Validation pre-hook vs schematype

时间:2014-09-11 08:30:47

标签: validation mongoose

这个问题似乎很愚蠢,但我找不到答案......

预挂钩验证和SchemaType验证之间有什么区别?我首先使用预钩中间件来进行验证,但在读完文档之后,我看到我可以在schemaType上做同样的事情。

我调用schemaType验证这种验证:

var validateLogin = function (login, res) {
    res(login === 'foo');
}

var UserSchema = new Schema({
    login: {
        type: String,
        required: '{PATH} is required',
        validate: [validateLogin, '{PATH} must be foo']
    }
});

在猫鼬文档中,我可以看到。

  

验证在SchemaType中定义

这是否意味着我们应该尽可能多地使用schemaType方式? 什么是真正的差异?

1 个答案:

答案 0 :(得分:0)

内置的SchemaType验证在他们可以检查的内容方面相当有限,尽管它们通常足以满足您想要进行的80%或更多验证。

预保存挂钩允许您进行更复杂的验证。作为一个人为的例子,你可以检查给定的数字是否为3或者可以被3整除。

您还可以检查字段之间的一致性 。例如,您可以检查邮政编码/邮政编码是否与用户输入的州/省匹配。