如何检查用户是否已经在express-validator中使用customValidators存在? [英] How to check is user already exist with customValidators in express-validator?

查看:97
本文介绍了如何检查用户是否已经在express-validator中使用customValidators存在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果用户已存在或自定义express-validator中不存在布尔值(真或假),我有一个问题. 到目前为止,我设法以这种方式工作:

I have a problem to return boolean (true or false) if user already exist or not in custom express-validator. So far I manage to work it in this way:

app.use(expressValidator({
    customValidators: {
        isUsernameAvailable: function (username) {
            return User
                    .findOne({ 'username': username })
                    .then(function (user) {
                        if (user) {
                            throw new Error('User already exist')
                        }
                    }
        }
    }

想法是返回布尔值(对应名称:isUsernameAvailable),而不是Promise或Object,但我不知道如何.

The idea is to return boolean (corresponding the name: isUsernameAvailable) not Promise or Object, but I don't know how.

我用它来检查它:

module.exports = {
    create: (req, res) => {
        let user = req.body

        ...
        req.check('username', 'This username is already taken.').isUsernameAvailable()
        ...
    }
}

推荐答案

我花了更多时间来简化和简化代码

i taken more time to get easy and simplify code for do it

这是我用过的代码

router.post('/signup', [
        check('username').notEmpty().withMessage('must be not null').
            .custom((value, {req, loc, path}) => {
                return Users.findOne({
                    where: {
                        username: req.body.username,
                    }
                }).then(user => {
                    if (user) {
                        return Promise.reject('Username already in use');
                    }
                });
            })
    ], (req, res) => {
        const errors = validationResult(req);
        if (!errors.isEmpty()) {
            return res.status(422).json({errors: errors.array()});
        } else {
            // Do everything or create new user
        }

    });

这篇关于如何检查用户是否已经在express-validator中使用customValidators存在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆