【问题标题】:Mongoose Validation pre-hook vs schematypeMongoose Validation pre-hook vs schematype
【发布时间】:2014-12-16 23:44:35
【问题描述】:

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

pre-hook 验证和 SchemaType 验证有什么区别?我首先使用 pre-hook 中间件进行验证,但在阅读文档后,我发现我可以在 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 方式? 真正的区别是什么?

【问题讨论】:

  • 我只能想到能够始终验证文档,而不仅仅是保存时

标签: validation mongoose


【解决方案1】:

内置的 SchemaType 验证可以检查的内容相当有限,尽管它们通常足以完成 80% 或更多您想要执行的验证。

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

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

【讨论】:

    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多