1.0.9 • Published 3 years ago

egg-onecode-router v1.0.9

Weekly downloads
44
License
ISC
Repository
-
Last release
3 years ago

路由部分

import router from 'egg-cool-router';
@router.prefix('/')
export default class WelcomeController extends BaseController {
    @router.get('/')
    public async welcome () {
        await this.ctx.render('welcome', { text: 'HELLO COOL-ADMIN' });
    }
}

参数验证

@router.get('/',true)
  • 参数验证规则放在app/rules文件夹下,一个方法对应一个文件。例:请求方法为app/user/address,则该路由的验证文件路径为app/rules/app/user/address.ts。文件内容例:
module.exports = {
    phone: [
        { required: true, message: '手机号不能为空' },
        { min: 11, message: '手机号格式不正确' }
    ],
    address: [
        { required: true, message: '详细地址不能为空' },
    ],
    name: [
        { required: true, message: '收件人不能为空' },
    ],
    province: [
        { required: true, message: '省份不能为空' },
    ],
};
//中间件
const validate = await router.validate(ctx)
if (validate !== true) {
    ctx.status = 400;
    ctx.body = {
        code: 400,
        message: validate,
    };
    return;
}
  • 常用规则
规则名	释义	使用案例
required	校验非空	 { name: [ 'required' ] }
regexpPhone	校验手机号	 { phone: [ 'regexpPhone' ] }
regexpEmail	校验邮箱	{ email: [ 'regexpEmail' ] }
minLength	校验最小长度	{ password: [ 'minLength:8' ] }
maxLength	校验最大长度	{ password: [ 'maxLength:10' ] }
enum	校验值是否匹配其一	{ role: [ 'enum:[3,6,9]' ] }
equal	校验值是否相等	{ score: [ 'equal:100' ] }
type	校验是否是目标类型	{ age: [ 'type:number' ] }
min	校验最小值	{ age: [ 'min:1' ] }
max	校验最大值	{ age: [ 'max:1000' ] }