Joi
JavaScript对象的规则描述语言和验证器。使用命令 npm intstall joi
安装
实际上就是用来验证JavaScript格式的,在Joi内部定义好了许多验证规则,并提供语法让你将不同的规则组合起来,形成符合你的验证规则。然后使用这个规则来验证你想要验证的对象是否符合要求。
Joi.string()表示只能是字符串,alphanum表示是字母或者数字的组合,min和max表示字符串的长度
required表示必填,integer表示要是整数类型
error指定错误信息,它接收一个Error对象作为参数,在Error对象中指定错误信息
regex表示使用正则规则来验证,email表示这个值要满足邮件格式
valid表示只能使用指定的值
[Joi.string(), Joi.number()] 表示既可以是字符串类型,也可以是数字类型
第一个规则一定要是数据类型
const Joi = require('joi');
const schema = {
username: Joi.string().alphanum().min(3).max(30).required().error(new Error(‘错误信息’)),
password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/),
access_token: [Joi.string(), Joi.number()],
birthyear: Joi.number().integer().min(1900).max(2013),
email: Joi.string().email()
};
// 第一个参数是要验证的对象,第二个参数是验证规则,返回的是一个promise对象
Joi.validate({ username: 'abc', birthyear: 1994 }, schema);
async function run() {
try{
await Joi.validate({username:'b'},schema);
}catch(ex){
console.log(ex.message);
return;
}
console.log('验证通过');
}
run();