88 현재 api 구조 - 토스트 팝업 뜨는 구조 이해하기 (ㅇㄹ등록메시지 일치할 때)
source: categories/study/vue-experiance/vue-experiance_9-88.md
88 현재 api 구조 - 토스트 팝업 뜨는 구조 이해하기 (ㅇㄹ등록메시지 일치할 때)
import axios from 'axios';
const config = {
baseURL: process.env.VUE_APP_BASE_URL,
// withCredentials: true,
timeout: 60 * 1000,
headers: {
'Content-Type': 'application/json; charset=utf-8',
},
};
const instance = axios.create(config);
instance.interceptors.request.use(
// 요청 전에 인터셉터해서 이 안에 코드 실행
// ...
)
instance.interceptors.response.use(
// 응답 내보내기 전에 인터셉터해서 이 안에 코드 실행
// ...
if (error.response.status === 500) {
const debounce = debounceGenerator.getInstance('500');
const { code, message } = error.response.data;
// 5100 - 파트생성개수 초과
const exceptionCode = ['5000', '5020', '5100', '5200', '5210', '5270'];
if (exceptionCode.every(item => String(code) !== item)) {
debounce(() => {
alert('error message : ' + error.response.data.message);
});
}
// 일반 alert처리
const alertCode = ['5270'];
if (alertCode.some(item => String(code) === item)) {
debounce(() => {
alert(error.response.data.message);
});
}
// 5000, 5100 > 에러 메시지 토스트로 띄우기
const toastCode = ['5000', '5100', '5020'];
if (toastCode.some(item => String(code) === item)) {
debounce(() => {
Vue.toasted.show(message); // 여기서 토스트 팝업 띄움
});
}
}
)