У меня есть express маршрут для обработки сброса пароля, и с этим у меня есть маршрут, где я сначала нахожу пользователя и имею некоторую обработку ошибок, но теперь я хочу дополнительную обработку ошибок во вложенной функции, и я не уверен, какой шаблон использовать
function triggerPasswordResetEmailSend(req, res, next) {
var email = req.body.email;
if (!email) return res.status(422).json({error: "Please provide an email."});
UserRepositoryClass.findUserByEmail(email).then(user =>{
if(!user) return res.status(422).json({message: "User not found"})
sendPasswordReset(user);
return res.status(200).json({user: user});
}).catch(err =>{
return res.status(500).json({error: err})
});
}
Внутри этой функции я делаю некоторую начальную обработку ошибок. Теперь проблема в том, что функция sendPasswordReset также может выдавать ошибки, но функция .catch()
не перехватывает их, поэтому я ищу что-то для обработки этой функции.
Я пытался передать объекты req and res
в функцию, но это не похоже на хорошее решение. Я мог бы попытаться поймать или, возможно, вернуть обещание. Но я хочу убедиться, что я следую той же схеме и лучшим методам, которые я уже пытался сделать.
Вот фрагмент кода из моей почтовой функции:
module.exports = (user) => {
const userResetToken = generatePasswordToken();
UserRepositoryClass.setPasswordResetToken(user.id, userResetToken);
const passwordResetUrl = PASSWORD_RESET_URL(user._id, userResetToken);
return sendMail(options(user.email, passwordResetUrl));
}