joi: 用于验证请求数据的库

const Joi = require('joi');

const schema = Joi.object({
  name: Joi.string().alphanum().min(3).max(30).required(),
  age: Joi.number().integer().min(18).max(99).required(),
  email: Joi.string().email().required(),
  password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
});

const input = {
  name: 'John Doe',
  age: 25,
  email: 'john.doe@example.com',
  password: 'password123'
};

const { error, value } = schema.validate(input);
if (error) {
  console.error(error.details[0].message);
} else {
  console.log(value);
}

上述代码中,我们定义了一个Joi schema,其中包含了四个字段:name、age、email和password。然后,我们创建了一个名为input的JavaScript对象,包含了四个字段的值。最后,我们使用schema.validate()方法验证输入数据的正确性,如果验证失败,则输出错误信息,否则输出验证后的数据。

在实际的应用中,我们可以将Joi用于验证HTTP请求的请求体、查询参数和路由参数等数据,以确保数据的正确性和完整性。