📅  最后修改于: 2023-12-03 15:24:17.863000             🧑  作者: Mango
joi 是一个用于验证和解析请求数据的 Node.js 模块。本文将介绍如何使用 joi 进行数据验证。
可以使用 npm 来安装 joi 模块:
npm install joi
首先需要引入 joi 模块:
const Joi = require('joi');
然后就可以使用 joi 进行数据验证了。以下示例演示了如何验证一个请求中的参数:
const schema = Joi.object({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')),
repeat_password: Joi.ref('password'),
birth_year: Joi.number().integer().min(1900).max(2013),
});
app.post('/register', (req, res) => {
const { error, value } = schema.validate(req.body);
if (error) {
// 数据验证失败
} else {
// 数据验证成功
}
});
在以上示例中,我们定义了一个数据结构 schema,它描述了数据的规则。然后我们在注册路由中使用了 schema 对请求参数进行了验证。
joi 支持多种验证器,比如 string()、number()、boolean()、date() 等等。以下是一些常用的验证器:
验证字符串类型数据,常用选项:
验证数字类型数据,常用选项:
验证布尔类型数据,常用选项:
验证日期类型数据,常用选项:
当验证失败时,joi 的默认错误消息可能不能满足需求。可以通过传递一个对象来自定义错误消息:
const schema = Joi.object({
email: Joi.string().email().required()
}).messages({
// 自定义错误消息
'string.email': '必须输入有效的邮箱地址'
});
本文介绍了 joi 模块的基本用法和常用的验证器,可以使用 joi 来对请求数据进行验证,以确保其符合规定的格式和要求。