• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

/api/[screenName].ts API에 대해 문의드립니다.

23.06.17 19:27 작성 조회수 221

0

안녕하세요,

사용자 정보 조회 API 부분에서

컨트롤러에 보면

screenName이 없을 경우에 대해서 예외처리를 해주고 있습니다.

if (screenName === undefined || screenName === null) {
    throw new BadReqError('screenName이 누락되었습니다.');
  }

위와 같은데

저 에러를 구현해보고 싶어서 테스트 해봤는데 되지 않아서 고민하다가 질문드려요.

[screenName].ts 형식의 Dynamic route로 되어 있어서 screenName이 누락된다면 해당 컨트롤러를 수행하지 않아 위 에러가 발생하지 않을 것 같은데 맞을까요?

제가 next는 이제 막 배워가고 있는 단계라서 잘 몰라서 위 이유가 맞는지 잘 모르겠습니다.

제가 발생시키지 못 하고 있는 중이라면 어떻게 해야 저 에러를 발생시킬 수 있는지 또한 같이 답변 부탁드립니다!!


요약

  1. dynamic route로 인해 screenName이 누락되었을 경우 컨트롤러를 실행하지 않는다고 생각했는데 맞을까요?

  2. 실행시킬 수 있는 에러라면 어떻게 해야 저 예외처리를 실행 시킬 수 있나요?

답변 1

답변을 작성해보세요.

1

안녕하세요 베레가모님.

이 예외처리는 실제로 발생하지 않지만 들어간 코드입니다.

Next.js가 dynamic route 해줘서 해당 컨트롤러로 진입하기때문에 실제로 발생하지 않습니다.

다만 TypeScript가 타입을 추론하는 시점에는 이를 전혀 알지 못합니다.

하여 예시처럼 예외처리하지 않으면 아래 쪽에서 undefined 를 계속 물고다닙니다.

이 문제를 피하기 위해서 상단에서 타입을 걸러주는 것입니다.

주말 늦은시간에도 불구하고

친절한 답변 정말 감사드립니다!!

실제 발생되지 않는 코드가 맞군요,,! ( 제가 이해한 바가 맞아서 다행입니다..ㅎ)

typescript에 대해 잘 모르기 때문에 이와같은 의문이 생기는 것 같아요. typescript는 이런 부분까지 고려해 가면서 개발을 해야한다는 것을 새삼 깨닫게 되었습니다

감사합니다.