Я хотел использовать экспресс-валидатор, чтобы проверить, существует ли электронная почта, вот мой код:
router.post('/', [
check('username', 'Min 5 chars, Max 20').isLength({ min: 5, max: 20 }),
check('email').custom(async value => {
const db = require('../db');
return await db.query('SELECT id FROM users WHERE email=?', [value], function (err, results, fields) {
if (results.length > 0) {
return false;
} else { return true; }
})
}).withMessage('Email already exists'),
], function(req, res, next) {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() });
}
....
Проблема с асинхронностью / ожидание, что проверка не прошлавыполнить вообще, даже если возвращение истинно или ложно.Как это исправить?