Дублирование кода при использовании 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('Неактивированные пользователи не имеют право на пост новости');
}
})
}),
]
Проблема в том, что из роута в роут этот код повторяется. Можно ли как-то вынести его в отдельный модуль? Например, создать функцию, принимающую строку, равную типу валидации и возвращать по соответствующий массив валидаторов?