exports.verifyReCAPTCHA = function(req, res, next) {
return new Promise((resolve, reject) => {
let recaptcha = new Recaptcha(process.env.RECAPTCHA_SITE_KEY, process.env.RECAPTCHA_SECRET_KEY, recaptchaData);
recaptcha.verify((success, error_code) => {
if (success) {
return resolve()
}
return reject(next(new Error(error_code)))
})
return reject(next(new Error('Unknown error occured!')))
})
}
Я намеренно оставил recaptchaData
неопределенным, чтобы увидеть, будут ли возвращенные ошибки проходить до next (), но это не так. Это просто дает мне необработанную ошибку отклонения Обещания, и ответ не переходит к следующему обратному вызову, который отправит запрос со статусом 500 и сообщением об ошибке.
app.post('/contact/send', contact.verifyReCAPTCHA, contact.send);