Я пытаюсь отправить произошедшую ошибку аутентификации как Node.js / Express JSON API ответа.
Мой код:
console.log("LOGIN USER...");
try {
let errors = validationResult(req);
if (!errors.isEmpty()) throw { code: 400, message: errors }
let authopt = { usernameField: 'email', passwordField: 'password' };
passport.authenticate('local', authopt, (err, user, info) => {
if (err || !user) {
console.log("ERROR IS PASSING FROM HERE.");
throw { code: 500, message: err }
}
else {
const token = user.generateJWT();
return res.status(200).json({
"jwtToken": token,
});
}
})(req, res, next)
} catch (error) {
return res.status(error.code || 500).send(error.message || "Unknown internal server error ! .");
}
После вызова конечной точки, сообщение 'ОШИБКА ПРОХОДИТ ОТ ЗДЕСЬ.' отображается в моей консоли с ошибкой:
(узел: 9392) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за вызова асинхронной функции без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отказа: 1) (узел: 9392) [DEP0018] DeprecationWarning: необработанные отклонения обещаний устарели. В будущем невыполненные отклонения обещаний завершат процесс Node.js с ненулевым кодом выхода.
Я ищу решение, сохраняя ту же структуру кода. Любая помощь?