什么是 Mongoose Schema?
Mongoose 是 Node.js 中最流行的和最成熟的 ODM(Object Document Mapping)数据库库之一,它能够帮助开发者通过定义 Schema(数据结构)和 Model(数据模型类)来操作 MongoDB 数据库。
Mongoose 提供了许多强大的功能,其中一个很有用的功能是 Validators(验证器)。通过 Validators,我们可以在定义 Schema 字段时,添加验证规则来确保数据的有效性。接下来,我们将详细介绍 Mongoose 中 Validators 的使用方法。
Validators 的使用
常用的 Validators 类型
Mongoose 提供了多种类型的 Validators,以下是其中一些常用的 Validators:
- required:表示该字段必填,如果该字段为空,Mongoose 将会抛出一个 ValidationError 异常。
- enum:表示该字段必须是一个枚举值中的一个,如果该字段的值不在枚举值中,Mongoose 将会抛出一个 ValidationError 异常。
- match:表示该字段必须满足指定的正则表达式,如果该字段的值与正则表达式不匹配,Mongoose 将会抛出一个 ValidationError 异常。
- min:表示该字段的值必须大于或等于指定的最小值,如果该字段的值小于最小值,Mongoose 将会抛出一个 ValidationError 异常。
- max:表示该字段的值必须小于或等于指定的最大值,如果该字段的值大于最大值,Mongoose 将会抛出一个 ValidationError 异常。
- validate:表示该字段必须通过自定义 Validator 函数才能合法。
在 Schema 中定义 Validators
我们可以通过在 Schema 中定义 Validators 来确保数据的有效性。在下面的代码中,我们定义了一个名为 User 的 Schema,其中包含了两个字段,分别是 name 和 age。我们通过 required 和 min Validators 来确保这两个字段的有效性。如果其中一个字段未填或值小于 18,Mongoose 将会抛出一个异常。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- - ----- ------- ---- -- - --- ----- ---- - ---------------------- ------------
自定义 Validators
有时我们需要对数据进行更复杂的验证,这时我们可以使用自定义 Validators。
在下面的例子中,我们定义了一个名为 email 的字段,该字段必须通过一个自定义的邮箱验证函数来确保其合法性。如果该字段不合法,Mongoose 将会抛出一个异常。
-- -------------------- ---- ------- ----- -------------- - ------- -- - ----- ----- - ----------------------------- ------ ----------------- -- ----- ---------- - --- ----------------- ------ - ----- ------- --------- ----- --------- - ---------- --------------- -------- -------- ------------ - - --- ----- ---- - ---------------------- ------------
总结
通过 Validators,我们可以在定义 Mongoose Schema 字段时快速且方便地定义验证规则来确保数据的有效性。同时,自定义 Validators 可以让我们更加灵活地进行数据验证。使用 Validators 可以有效地避免数据不一致的问题,提高系统的健壮性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64edd70ef6b2d6eab37fc363