| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const joi = require("joi");
- // .string():数据必须为字符串类
- // .number():数据必须为数字类型
- // .integer():数据必须为整数类型
- // .alphanum():数据只能包含[a-zA-Z0-9]的字符
- // .max(number|string):number:最大长度 | string:最大日期
- // .min(number|string):number:最小长度 | string:最小日期
- // .required():数据为必填项,不能为null或undefined
- // .pattern(正则表达式):以正则表达式的形式验证数据
- // .regex(正则表达式):定义字段必须匹配正则规则。
- // .email():验证邮箱
- // .joi.ref(key:string):引言同辈的键值,就是拿到value
- // .not(values:any[]):当前属性的值不能同参数值相同
- // .valid(…values:any[]):当前属性的值必须于参数值相同
- // .dataUri():当前字段为可以是URL地址
- // .allow(…values:any[]):该字段允许为指定参数的值
- // .default(any[]):设置该字段的默认值,值可以为string、number、boolean……等
- // .error(new Error(‘错误信息’)):在不符合验证条件的时候会返回错误信息
- const username = joi.string().min(3).max(10).required().error(new Error("请输入正确规则的用户名"))
- const password = joi.string().pattern(/^[\S]{6,12}$/).required().error(new Error("请输入正确规则的密码"))
- exports.regSchema = {
- body: {
- username,
- password
- }
- };
- const id = joi.number().integer().min(1).required()
- const nickname = joi.string().required()
- const email = joi.string().email().required()
- exports.updataUserInfoSchema = {
- body: {
- id,
- nickname,
- email
- }
- };
- exports.updataUserPwdSchema = {
- body: {
- //使用password这个规则,验证req.body.oldPwd的值
- oldPwd: password,
- //使用joi.not(joi.ref('oldPwd')).concat(password)规则,验证req.body.newPwd的值
- //解读
- //1.joi.ref('oldPwd') 表示newPwd和oldPwd的值保持一致
- //2.joi.not(joi.ref('oldPwd'))表示newPwd的值不能等于oldPwd的值
- //3. .concat()用于合并joi.not(joi.ref('oldPwd'))和pasword两条规则
- newPwd: joi.not(joi.ref('oldPwd')).concat(password)
- }
- };
- const avatar = joi.string().dataUri().required();
- exports.updateUserAvatarSchema = {
- body: {
- avatar
- }
- };
|