useErrorHandler.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /************************
  2. * import
  3. ************************/
  4. const useErrorHandler = () => {
  5. const { $log, $toast, $eventBus } = useNuxtApp()
  6. // 공통 에러코드
  7. let errProfiles = [
  8. { code : '9999' , action : 0, desc : '기타오류', proc : {type:'toast',msg:'처리중 오류가 발생되었습니다.<br/> 지속발생시 관리자에게 문의 바랍니다.'}, after : null}
  9. ]
  10. let errObj = { code : '' , action : 0, desc : '', proc : {type:'toast',msg:'처리중 오류가 발생되었습니다.<br/>상세오류코드: '}, after : null}
  11. /**
  12. * 공통 에러 처리 함수
  13. * @param {*} error 에러
  14. */
  15. async function fnSetCommErrorHandle(error){
  16. let code = ''
  17. let msg = ''
  18. if (error.response){
  19. code = error.response.data.resCode
  20. msg = error.response.data.resMsg
  21. }
  22. //$log.error('[ErrorHandle][ERROR]' + JSON.stringify(error.response.data))
  23. if(code === '1005' || code === '1006' || code === '1007' || code === '1008') {
  24. // 1005: 토큰이 없음, 1006: 토큰 만료됨, 1007: 잘못된 토큰 값, 1008: 로그아웃 처리된 토큰 값 => 강제 로그인 페이지로 이동
  25. $eventBus.emit('SESSION_DESTORY')
  26. }
  27. // 에러로 처리
  28. errObj.code = code
  29. if(_isEmpty(errObj.code)){
  30. errObj = _find(errProfiles, {code:'9999'})
  31. code = '9999'
  32. }
  33. if(errObj.proc.type === 'toast'){
  34. let toastMsg = errObj.proc.msg
  35. toastMsg = errObj.proc.msg.concat(msg+'['+code+']')
  36. //$toast.error(toastMsg)
  37. }
  38. return false
  39. }
  40. return { fnSetCommErrorHandle }
  41. }
  42. export default useErrorHandler