Как правило, у меня есть вызовы Axios, которые выглядят примерно так:
api.post('/users/add', (req, res, next) => {
Users.create(req.body).then(userResult => {
// misc code here
return res.json(userResult)
}).catch((err, req, res, next) => {
if (err) {
// handle the error by sending to the application error handler
next(err);
}
});
});
Проблема, с которой я столкнулся, заключается в том, что req, res и next, по-видимому, не существуют, если ошибка является проверкой Sequelizeошибка.Поэтому я добавляю проверку в IF следующим образом:
if (err) {
if (err instanceof Sequelize.ValidationError) {
// i've tried a lot here and am stuck as to what to do
} else {
// handle other errors
}
}
Я могу точно проверить ошибку, как только попал в этот внутренний IF, но я не знаю, что делать, чтобы получить ответк вызывающему браузеру.Я также не могу вызвать next () и вызвать ошибку в моем обычном обработчике ошибок, так как он не распознает next ().И если бы я мог, то элементы, которые я обычно использую из req или res, недоступны.
Я просмотрел всю документацию на веб-сайте Sequelize, изучил очередь вопросов, искал здесь в stackoverflow,и не могу найти ту же проблему.Поэтому я полагаю, что решение является чем-то простым, что является лишь пробелом в моих знаниях.Пожалуйста, просветите меня.Как мне заставить это всплыть в моем общем обработчике ошибок или вернуть ответ браузеру отсюда?