вы сохраняете флаг, подобный isAuthError
, и, если происходит ошибка, отправляете его как true и в основную функцию, если флаг isAuthError
равен true, выдает ошибку и обрабатывает catch, в противном случае выполняйте ваши операции.Я добавил пример ниже.надеюсь, это поможет
const getToken = async () => {
try {
const token = await axios.post(keys.sessionURL, {
email: keys.verificationEmail,
password: keys.verificationPassword,
});
return {token, isAuthError: false};
} catch (err) {
// throw new Error('Unable to establish a login session.'); // here I'd like to send the error to the user instead
return {err, isAuthError: true};
}
};
mainFunction
app.post('/login', async (req, res)=>{
try{
// some validations
let data = await getToken();
if( data.isAuthError){
throw data.err;
}
let token = data.token;
//do further required operations
}catch(err){
//handle your error here with whatever status you need
return res.status(500).send(err);
}
})