inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Dự án REST-API mảnh dẻ

Triển khai xác thực - Thành phần

[인증 구현 - 컴포넌트] error 처리 관련 질문

Đã giải quyết

422

ggamsi04187932

12 câu hỏi đã được viết

0

2분 12초

인증 컴포넌트를 테스트해보는 과정에서 질문이 생겼습니다.

만약 백엔드 서버가 작동하지 하고 있다면,

이메일/패스워드 입력 후 로그인 버튼을 클릭하면

auth 스토어의 login 메소드에서 에러가 발생합니다.

그럼 이때 try/cath로 인해 "오류가 발생했습니다. 로그인을 다시 시도해 주세요."라는 alert 문구를 띄우게 됩니다.

 

만약에 AuthLogin 컴포넌트에서 정의한 try/catch으로

alert를 보여주고 싶다면 Auth 스토어의 login 메소드에서 try/catch를 하지 않으면 되는데, 이는 좋은 방법같지 않은거 같습니다.

 

아니면 on:click 이벤트 정의 메소드에서는 try/cathc를 안해는게 나을까요? 

 

error를 catch 하는 것을 한 곳에서 관리(?)하여 에러 발생시 내가 원하는 동작(화면)을 보여주고 싶다면 어떻게 코드를 작성하는게 좋을까요?

rest-api svelte

Câu trả lời 1

1

Indie Coder

최종 컴포넌트에서 오류를 제어하길 원하신다면

우선 login 메소드의 try catch를 제거하는 것이 아니고 catch에서 다음과 throw를 이용해

오류를 다시 한번 넘겨주면 될 것 같습니다 .

const login = async(email, password) => {
		try {
      const options = {
        path: '/auth/login',
        data: {
          email: email,
          pwd: password,
        }
      }

      const result = await postApi(options)
      set(result)
      isRefresh.set(true)
      router.goto('/')
    }
    catch(error) {
      // alert('오류가 발생했습니다. 로그인을 다시시도해 주세요.')
      throw error
    }	
}

그리고 최종적으로 처리하길 원하는 위치에서 이 넘겨진 오류를 받아

원하는 액션을 주시면 될 것 같습니다.

 

이때 오류에 따른 처리의 경우 전달받은 error객체에서 message나 code 등 을 분석해

그에 맞는 동작을 하게 하는 함수를 만들어 처리하는 것도 좋을 것 같습니다.

 

참고로 디버그를 통해서 보면 서버로 부터 전달받는 error의 경우 다음과 같은 형태의 객체가됩니다.

AxiosError {message: 'Request failed with status code 500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE', config: {…}, request: XMLHttpRequest, …}

0

ggamsi04187932

말씀해주신대로 depth가 있는 곳에서는 error 객체를 throw 해주고 최종적으로 전달받은 곳에서는 원하는 동작을 정의해주면 되겠네요!

늦은 시간임에도 불구하고 친절히 답변해주셔서 감사합니다 :)

수업자료 링크 접속했는데 404에러 뜹니다 ㅠ

1

45

1

11장 미션에 이메일 남기는걸 누락했어요.

0

39

1

소스코드즘 부탁드립니다.

0

45

1

@RestControllerAdvice를 사용하지 않은 이유?

0

42

1

6장 ORM 에 관하여 질문

0

51

1

선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요

0

50

2

마감 인 경우.

0

74

1

5장부터는 미션 상세 내용이 없는데 어떻게 작성해야되나요?

0

68

1

환경변수 기반 업비트 API 키 가져오기에서 none이 나옵니다ㅠㅠ

0

56

2

3,4장 이후 미션 제출 질문

0

79

2

윈도우에서 Node js를 설치하고 싶어요

0

45

0

가상 환경과 차이 도커 질문

0

43

1

유튜브 시연 영상 추가 기능 강의 업로드 계획

0

55

3

프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문

0

103

2

[npm start 오류나는 분들을 위하여]노드 최신버전 사용하시면 오류가 발생합니다.

0

428

1

첫 메인 화면 $isLogin 인증 부분 궁금한점이 있습니다.

0

580

2

[앱 완성도 높이기3 - URL을 통한 보기모드 변경] 로그인 성공 후 라우팅 문제

0

336

1

[앱 완성도 높이기2 - 날짜보기] 타임존 관련 설정 문제

0

1587

1

[보기모드 변경 구현] 코멘트 리스트 조회 후 문제

0

485

2

[보기모드 변경 구현] 좋아요 보기 구현에서 문제 발견

0

450

1

[인증 구현 - store] setAuth 메소드 구현

0

382

1

[스토어 배치] 강의 내용 중 수정이 필요한 부분

0

371

1

[라우터 설정] 강의 내용 중 수정이 필요한 부분

0

599

1

아래와 같은 에러가 발생합니다. ㅜㅜ

0

1280

2