数据验证 express-validator封装

2023-03-23  本文已影响0人  奈何明月照沟渠

增加一个返回结果统一处理的中间件

const {validationResult} = require('express-validator')
module.exports = validator => {
    return async(req,res,next)=>{
        await Promise.all(validator.map(validator => validator.run(req)))
        const error = validationResult(req)
        if(!error.isEmpty()){
            return res.status(401).json({error:error})
        }
        next()
    }
}

规则模块

const {body} = require('express-validator')
const validate = require('./errorBack')
module.exports.register = validate([
    body('username').notEmpty().withMessage('用户名不能为空').bail()
        .isLength({min:3}).withMessage('用户名长度不能小于3').bail(),
    body('email').notEmpty().withMessage('邮箱不能为空').bail()
        .isEmail().withMessage('邮箱格式不正确').bail()
        .custom(async val=>{
            const emailValidate = await User.findOne({email: val})
            if(emailValidate){
                return Promise.reject('邮箱已被注册')
            }
        }).bail()
])
上一篇下一篇

猜你喜欢

热点阅读