fjh
Version:
博客api
64 lines (56 loc) • 2.03 kB
JavaScript
const Joi = require('joi');
const validateData = (schema) => {
return (req, res, next) => {
const validation = schema.validate(req.body);
if (validation.error) {
return res.status(400).json({ error: validation.error.details[0].message });
} else {
req.body = validation.value;
return next();
}
};
}
// 注册
const enroll = Joi.object({
username: Joi.string().regex(/^[\u4e00-\u9fa5a-zA-Z0-9@!.
email: Joi.string().regex(/^[0-9]{10,10}$/).required(),
password: Joi.string().regex(/^[a-zA-Z0-9@!.
captcha: Joi.string().regex(/^[0-9]{2,10}$/).required(),
avatar: Joi.string().regex(/^[A-Za-z0-9+/=]/).min(0).max(40000)
});
// 注测发送验证码
const captcha = Joi.object({
username: Joi.string().regex(/^[\u4e00-\u9fa5a-zA-Z0-9@!.
email: Joi.string().regex(/^[0-9]{10,10}$/).required(),
password: Joi.string().regex(/^[a-zA-Z0-9@!.
avatar: Joi.string().regex(/^[A-Za-z0-9+/=]/).min(0).max(40000)
});
// 账号登录
const login = Joi.object({
email: Joi.string().regex(/^[0-9]{10,10}$/).required(),
password: Joi.string().regex(/^[a-zA-Z0-9@!.
});
// 验证码发送
const sendcaptcha = Joi.object({
email: Joi.string().regex(/^[0-9]{10,10}$/).required(),
});
// 验证码登录
const captchalogin = Joi.object({
email: Joi.string().regex(/^[0-9]{10,10}$/).required(),
captcha: Joi.string().regex(/^[0-9]{2,10}$/).required(),
});
// 修改密码与忘记密码
const revise = Joi.object({
email: Joi.string().regex(/^[0-9]{10,10}$/).required(),
captcha: Joi.string().regex(/^[0-9]{2,10}$/).required(),
password: Joi.string().regex(/^[a-zA-Z0-9@!.
});
module.exports = {
validateData,
enroll,
captcha,
login,
sendcaptcha,
captchalogin,
revise
}