Nodejs 表单数据校验 Joi

Nodejs 表单数据校验 Joi

安装

npm i joi

示例

string 规定字符串类型
alphanum 字母与数字组合
min(6).max(16) 最少6位 最大16位数
required 必填
pattern 这里可以写正则表达式

const Joi = require('joi');

const schema = Joi.object({
    // 用户名规定为6 ~ 16位的字符串
    username: Joi.string().alphanum().min(6).max(16).required(),
    // 密码规定为6 ~ 30 位数a-z、A-Z、0-9的组合
    password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{6,30}$')),
})

let res = schema.validate({ username: 'admin888', password: '123123' });
console.log(res);

数据校验

成功

数据校验成功则返回用户名与密码

let res = schema.validate({ username: 'admin888', password: '123123' });
console.log(res);
// { value: { username: 'admin888', password: '123123' } }

失败

用户名少一位数,校验失败

let res = schema.validate({ username: 'admin', password: '123123' });
console.log(res.error.details[0].message);
// "username" length must be at least 6 characters long

Joi官网: https://joi.dev/api/?v=17.6.1

评论区
头像