美文网首页
数据验证 express-validator封装

数据验证 express-validator封装

作者: 奈何明月照沟渠 | 来源:发表于2023-03-23 13:58 被阅读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()
    ])
    

    相关文章

      网友评论

          本文标题:数据验证 express-validator封装

          本文链接:https://www.haomeiwen.com/subject/uwnvrdtx.html