1.0.0 • Published 2 years ago

@chandre/egg-validator v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@chandre/egg-validator

基于 parameter 验证模块

Install

$ npm i @chandre/egg-validator --save

Usage

// {app_root}/config/plugin.js
exports.validator = {
  enable: true,
  package: '@chandre/egg-validator',
};

Validator Class Methods

  1. addRule(type, check) 添加验证规则
  2. validate(data, rules) 参数验证
  3. translate(args) 验证消息国际化

Example

  1. 自定义验证类型
/** {app_root}/app/extend/validator.js */
module.exports = app => {
  alpha_dash(rule, value) {
    if (!/^\w+$/.test(value)) {
      return 'only contain alpha-numeric characters and underscores';
    }
  },
};
  1. 定义验证类
/** {app_root}/app/validator/User.js */
const Validator = require("egg").Validator;
class UserValidator extends Validator {
  // 验证方法
  checkUserName(data) {
    this.validate(data, {
      username: {
        type: 'alpha_dash'
      }
    })
  }
}
module.exports = UserValidator;
  1. 使用验证类
/** {app_root}/app/controller/user.js */
const Controller = require("egg").Controller;
class UserController extends Controller {
  getUser() {
    const ctx = this.ctx;
    try {
      const data = ctx.request.body;
      // 验证参数
      ctx.validator.User.checkUserName(data);
      return data;
    } catch(err) {
      console.log(err)
    }
  }
}
module.exports = UserController;

License

MIT