UNPKG

fjh

Version:

博客api

64 lines (56 loc) 2.03 kB
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@!.#]{2,16}$/).required(), email: Joi.string().regex(/^[0-9]{10,10}$/).required(), password: Joi.string().regex(/^[a-zA-Z0-9@!.#]{6,20}$/).required(), 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@!.#]{2,16}$/).required(), email: Joi.string().regex(/^[0-9]{10,10}$/).required(), password: Joi.string().regex(/^[a-zA-Z0-9@!.#]{6,20}$/).required(), 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@!.#]{6,20}$/).required(), }); // 验证码发送 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@!.#]{6,20}$/).required(), }); module.exports = { validateData, enroll, captcha, login, sendcaptcha, captchalogin, revise }