Node.js第三方模块Joi
JavaScript对象的规则描述语言和验证器
//示例代码:
const Joi = require('joi');
const schema = {
username:Joi.string().alphanum().min(3).max(30).reuqired().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(2021),
email:Joi.string().email()
};
//验证
Joi.validate({ username:'abc', birthyear:1994 },schema);
项目代码:
//JavaScript对象的规则描述语言和验证器
const Joi = require("joi");
//定义对象的验证规则
const schema = {
username: Joi.string() //数据类型
.min(2)
.max(5)
.required() //必填字段
.error(new Error("username属性没有通过验证")), //自定义错误信息
birth: Joi.number().min(1900).max(2020).error(new Error("birth没有通过验证")),
};
async function run() {
try {
//实时验证
await Joi.validate({ username: "ab", birth: 1899 }, schema);
} catch (ex) {
console.log(ex.message);//简介错误信息
return;
}
console.log("验证通过");
}
run();
运行后,出现错误
错误原因:安装的joi版本不支持
解决方法:
- 先卸载之前安装的:
npm uninstall joi
- 重新安装
npm install joi@14.3.1
重新运行: