不建议使用这个验证器
来源:5-1 Lin-Validator使用指南

慕九州5038668
2020-12-30
不推荐使用老师推荐的这个验证器。
建议使用1个叫joi的验证器,github有17k星星。有了这个,以后所有前端后端验证器,都不需要再学其他的了
joi优点:
1.前端、后端全都能用,语法完全一致。
2.支持错误信息精准匹配,也支持1字段匹配1个错误信息
3.提供的具体的验证规则多达200多条,导致几乎所有的规则都有,最终导致几乎不需要写正则表达式。大幅度减少写 正则出错的几率.
joi缺点:
1.当使用精准匹配错误信息的时候,需要查阅文档的规则所对应的错误类型,就这1个缺点.
例子:
const Joi = require("joi")
//1.生成规则
const rule = Joi.object().keys({
//1.1.这里属于错误信息,精准匹配,这是joi的固定写法
email: Joi.string().required().email()
.messages({
'string.base': '邮箱必须是字符串类型', //string()规则对应了“string.base”的错误类型
'any.required': '请输入邮箱', //required()规则对应了“any.required”的错误类型
'string.email': '邮箱格式不正确' //email()规则对应了“string.email”的错误类型
}),
//1.2.这种属于1字段匹配1个错误信息,等于几个错误就1个错误信息,都可以这样混用,想怎么用怎么用
password: Joi.string().trim().required().min(6).max(18).alphanum().error(new Error("密码不正确")
})
//2.使用规则验证指定的数据
const result = rule.validate({ email: "aaaa.@sina.com", password: "abc123" });
//3.如果result.error为真,证明有错误,否则证明验证通过
if(result.error){
console.log(result.error.message)
}
写回答
1回答
-
慕九州5038668
提问者
2020-12-30
补充,这个验证器非常的强大,不只是上面这些验证对象的,单独的验证1个变量也是可以做的,几乎关于验证数据的,就用这个joi就足够了。
但是关键点在于,如果真的想要学好这个joi,最好要去翻译1下它的英文文档。
112021-04-20
相似问题