Sequelize是一个流行的JavaScript ORM库,可用于与多种数据库交互。Sequelize提供了许多内置校验器,但是有时您需要实现自定义校验器来检查模型中的一些字段。在本文中,我们将介绍如何建立自定义校验器以及如何将其添加到模型中。
什么是自定义校验器?
在Sequelize中,校验器用于检查模型中的字段是否满足特定条件。Sequelize具有许多内置校验器,例如“notEmpty”和“isEmail”。这些校验器非常有用,但有时您需要检查模型中的字段是否满足您自己的条件。这时候自定义校验器派上用场了。
如何创建自定义校验器?
在Sequelize中创建自定义校验器非常简单。您只需要编写一个函数,此函数将要验证的值作为参数,并返回“true”或“false”。
下面是一个示例自定义校验器,用于检查电子邮件地址是否已注册:
function isEmailAvailable(value) { return User.findOne({ where: { email: value }}) .then(user => { if (user !== null) { throw new Error('This email is already in use!'); } }); }
在上面的代码中,我们使用Sequelize的“findOne”方法来查找具有给定电子邮件的用户。如果找到了用户,我们会抛出一个错误,指示该电子邮件已被使用。
如何将自定义校验器添加到模型中?
一旦创建了自定义校验器,您需要将其添加到Sequelize模型中才能使用。您可以通过将自定义校验器传递给字段的“validate”属性来实现此操作。
下面是使用自定义校验器的示例模型:
-- -------------------- ---- ------- ----- ---- - ------------------------ - ------ - ----- ----------------- ---------- ------ ------- ----- --------- - -------- ----- ----------------- ---------------- - - ---
在上面的代码中,我们将内置校验器“isEmail”和自定义校验器“isEmailAvailable”添加到“email”字段的验证器中。当Sequelize验证模型时,它将依次运行每个验证器,并为任何失败的验证器返回错误。
总结
Sequelize的自定义校验器使您能够执行高度定制的数据验证。通过编写自己的校验器函数,并将它们添加到模型中,您可以确保模型中的数据满足您的特定需求。在实践中,您可能需要使用多个校验器来确保模型中的字段满足各种条件。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645b672e968c7c53b0dbe741