企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 验证器定义 为具体的验证场景或者数据表单定义验证器类,直接调用验证类的`check`方法即可完成验证,下面是一个例子: 我们定义一个`LoginValidate `验证器类用于`登录`的验证。 ``` class LoginValidate extends Validate { constructor() { const rules = { 'user' : 'require|mail|max:30', 'pass' : 'require|chsDash|length:6,16' } super(rules) } } ``` 可以直接在验证器类中使用`super()`方法第二个参数定义错误提示信息,例如: ~~~ class LoginValidate extends Validate { constructor() { const rules = { 'user' : 'require|mail|max:30', 'pass' : 'require|chsDash|length:6,16' } const message = { 'user.require' : '用户名必须填写', 'user.mail' : '用户名需为邮箱', 'user.max' : '你使用了长度过长的邮箱号码', 'pass.require' : '密码必须填写', 'pass.chsDash' : '密码格式错误', 'pass.length' : '密码长度为6~16个字符', } super(rules,message) } } ~~~ >[info] 如果没有定义错误提示信息,则使用系统默认的提示信息 ## 数据验证 在需要进行`登录`验证的控制器方法中,添加如下代码即可: ~~~ const data = { 'user' : 'admin@admin.com', 'pass' : '123456' }; const login = new LoginValidate(); if(!login.check(data)){ console.log(login.getError()) } ~~~ ## 抛出验证异常 默认情况下验证失败后不会抛出异常,如果希望验证失败自动抛出异常,可以在验证器方法中进行设置: 在constructor中添加`super.fail = true` 或者在检验时添加 ~~~ if(!login.check(data,true)){ console.log(login.getError()) } ~~~ 也可以使用链表操作 ~~~ login.setFail(true) ~~~ 设置开启了验证失败后抛出异常的话,会自动抛出ValidateException异常需要自己捕获处理。 ## 批量验证 默认情况下,一旦有某个数据的验证规则不符合,就会停止后续数据及规则的验证,如果希望批量进行验证,可以设置`setBatch(true)`: ~~~ let userValidate = Validate.make({ "user" : "require|length:6,20|chsDash", "pass" : "require|length:6,20|alphaDash", "code" : "require|number|length:6" }); if (!userValidate.setBatch(true).check({ "user" : 1, })){ console.log(userValidate.getError()) } ~~~ 默认`setBatch(false)`情况下输出应该为`user长度错误` 开启批量验证后,返回数组 ~~~ [ { rule: 'length', key: 'user', value: 1, message: 'user长度错误' }, { rule: 'require', key: 'pass', value: undefined, message: 'pass必须填写' }, { rule: 'require', key: 'code', value: undefined, message: 'code必须填写' } ] ~~~