最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

自定义验证查询始终闪光

运维笔记admin11浏览0评论

自定义验证查询始终闪光

自定义验证查询始终闪光

我想用快递验证应该只踢如果现场确实有一些输入来实现验证。如果它是空的,应该只是被忽略。验证的第一部分,如果该字段进行检查,检查其是否满足正则表达式的要求和第二检查,看是否存在于数据库中的值。以大写字母相同的用户名的小写版本不准,即:雪莉和雪莉被看作是同样的事情。

body('username')
    .trim()
    .custom((value, { req }) => {
        var regex = /^[a-zA-Z0-9]{5,20}$/;
        if (value != '' && !value.match(regex)) {
            throw new Error('Username does not meet required criteria.');
        }
        return true;
    })
    .custom((value, { req }) => {
        if (value !== '') {
            return User.findOne({ username: new RegExp(`^${value}$`, 'i') })
                .then(userDoc => {
                    if (userDoc) {
                        return Promise.reject('Username unavailable');
                    }
                    return true;
                });
        }
    }),

如果我离开的用户名字段为空我仍然得到验证错误,告诉我“用户名不可用”

回答如下:

设法得到它的工作是这样

  .custom(value => {
        if (value !== '') {
            return User.findOne({ username: new RegExp(`^${value}$`, 'i') })
                .then(userDoc => {
                    if (userDoc) {
                        return Promise.reject('Username not available');
                    } else {
                        return true;
                    }
                })
        } else {
            return true;
        }
    })

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论