При создании пользователя, игнорируется проверка

Пытаюсь реализовать проверку полей при регистрации пользователя с помощью миддлвейра express-validator.

Сам middleware:

const express = require('express')
const {check, checkSchema} = require('express-validator')
const emailPattern = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/

const app = express()

app.post('/auth', async (req, res, next) => {
    if(req.method === 'OPTIONS'){
        return next()

    }  try {
        // const {firstName, secondName, email, password} = req.body
        check('email')
        .matches(emailPattern)
        .withMessage("Неверный формат"),

        check('password')
        .isLength({min: 8})
        .withMessage("Минимальная длина пароля - 8 символов")
        next()

    } catch (e){
        res.status(500).json({message: "Что-то пошло не так"})
        throw new Error (e)
    }
})

module.exports = app

И роут к нему

const {Router} = require('express')
const bcrypt = require('bcryptjs')
const jwt = require('jsonwebtoken')
const auth = require('E:/client-system/server/middleware/AuthMiddleware')
const config = require('config')
const User = require('../models/User')

const router = Router()


    router.post('/register', auth, async (req, res) => {

    try{
        const {firstName, secondName, email, password} = req.body

        const candidate = await User.findOne({ email })

        if(candidate) {
            return res.status(400).json({message: "Такой пользователь уже существует"})
        }

        const hashPass = await bcrypt.hash(password, 12)
        const user = new User({
            firstName,
            secondName, 
            email, 
            password: hashPass
        })

        await user.save()

        res.status(201).json({message: "Пользователь создан"})

    } catch (e){
         res.status(500).json({message: "Что-то пошло не так"})
         throw new Error(e)
    }
})

module.exports = router

В Постман в body передаю json такого формата:

{
    "firstName": "regUser1",
    "secondName": "regUser1",
    "email": "registerUser1",
    "password": "registerUserPass"
}

Программа не видит ошибки несоответствия email и успешно создаёт пользователя в БД. Заранее спасибо!


Ответы (1 шт):

Автор решения: KirbyTwister

В общем, всё оказалось намного проще.

Достаточно было лишь применить метод test для моего emailPattern, и по итогу получить вот такую проверку:

const validEmail = emailPattern.test(email)

        if(!validEmail){
            return res.status(400).json({message: "Неверный формат"})
        }
→ Ссылка