Я использую Axios для использования API на моем бэкэнде с NODEJS + EXPRESS ...
После этого я использую Axios в своем внешний интерфейс с ES6 + JAVASCRIPT, ОРИЕНТИРОВАННЫЙ НА ОБЪЕКТЫ ...
Что произойдет, если я получу через свой бэкэнд в маршруте API, он возвращает мне ошибкукогда он должен вернуться, и возвращает мне дату, когда он должен вернуться ...
Но в моем внешнем интерфейсе , axios catch не работает потому что это возвращает меня внутри моей ошибки даты и не меняет status и statusText .
Я хотел бы знать, почему это происходит, и исправить на моем backend в атрибут "date" it возвращает мне результат, если нет ошибки , и , если есть ошибка, он изменяет атрибуты "status" и "statusText"ответа Axios на улов на фронтенде будет работать ..
КОД КОНТРОЛЛЕРА БАКЕНДА (NODEJS CONSUMEAPI):
module.exports.consume = (app, req, res) => {
// PARAMS && QUERYS
const xsjs = req.params.urn;
const shoppingId = req.query.Shop,
periodOf = req.query.PeriodOf,
periodUntil = req.query.PeriodUntil,
kpi = req.query.Kpi,
select = req.query.Select;
// API_DAO.JS (CLASS)
const apiDAO = new app.models.apiDAO(xsjs, shoppingId, periodOf, periodUntil, kpi, select);
apiDAO.getResponseAxios().then ( response => res.json(response.data) )
.catch ( error => res.json({ ErrorStatus: error.response.status, ErrorText: error.response.statusText }) );
}
AXIOS В МОЕМ FRONTEND
class Api {
constructor(xsjs, shoppingId, periodOf, periodUntil, kpi, select){
this.xsjs = xsjs;
this.shoppingId = shoppingId;
this.periodOf = periodOf;
this.periodUntil = periodUntil;
this.kpi = kpi;
this.select = select;
}
configAxios(){
return axios.create({
baseURL: 'http://localhost:3000/api/',
method: 'GET',
responseType: 'json',
responseEncoding: 'utf8',
headers: {
'Content-Type': "application/json",
'Cache-Control': "no-cache",
},
params: {
Shop: this.shoppingId,
PeriodoDe: this.periodOf,
PeriodoAte: this.periodUntil,
Kpi: this.kpi,
Select: this.select
}
});
}
async consume(){ return await this.configAxios().get(`/${this.xsjs}?`); }
}
Ответ об ошибках Axios на внешнем интерфейсе
Обратите внимание, что он вставляет в атрибут даты ошибки и не изменяет статус или statusText из атрибута даты.(Это должно быть неправильно, поскольку в запросе API на моем бэкэнде произошла ошибка)
Axios Response при правильном выполнении с параметрами и запросом
![img2](https://i.stack.imgur.com/5lH7V.png)