Дублирование кода при использовании express-validator

Валидирую данные с помощью express-validator, использую:

[
    check('user.email', 'Введен некорректный email').isEmail(),
    check('user').custom(async val => {
        return await User.findOne({ email: val.email }).then(user => {
            if (!user) {
                return Promise.reject('Такой email не зарегестрирован');
            }
            if (val.password !== user.password) {
                return Promise.reject('Неверный пароль, попробуйте перелогиниться');
            }
            if (!user.active) {
                return Promise.reject('Неактивированные пользователи не имеют право на пост новости');
            }
        })
    }),
]

Проблема в том, что из роута в роут этот код повторяется. Можно ли как-то вынести его в отдельный модуль? Например, создать функцию, принимающую строку, равную типу валидации и возвращать по соответствующий массив валидаторов?


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