数据验证(validators)

数据验证是指服务端的验证,通过暴露 exports.validations 来配置创建、更新、删除(create,update,remove)业务操作时需要处理的数据验证,配置方式跟hooks类似。

基础

以下场景表示启用的用户不允许删除:

exports.validators = {
    create: {
        defaults: function(context, entity, request){
        }
    },
    update: {
        defaults: function(context, entity, request){
        }
    },
    remove: {
        defaults: function(context, entity, request){
            if(entity.status === '启用') {
                context.addViolation({ message: '不能删除状态为启用的用户'});
            }
        }
    }
};

validator 分以下几种:

  • create 添加操作验证
  • update 更新操作验证
  • remove 删除操作验证

context 有以下几个方法:

  • addViolation(obj)增加验证错误信息,obj必须是带message属性的对象,message信息将会提示在界面上
  • hasViolations() 判断context中有没有验证错误信息
  • collectViolations() 返回错误信息列表
  • skipBeanValidation() 跳过验证,即使有错误信息,函数也会执行下去,相当于放行的意思。

注意:
数据验证中 context 中只要有一条 violation 记录,验证便不通过,界面就会提示错误信息。

传入参数:

  • entity 已经填充好数据当前实体对象
  • request 请求对象,里面包含界面请求的参数,详细请看request 章节。

高级

同hooks一样,除了验证 default 表单的数据外,还可以验证其它表单的数据。

exports.validators = {
    update: {
        changePassword: function(context, entity, request){
        }
    }
};