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
其实我也整丢过,丢了两年的数据,当时是通过虚拟机操作,属于手抖点错了按钮误删了...然后心态都崩了。
最后是痛定思痛,想着干脆趁此机会重新开始。总之,不论如何做好备份。