[NestJS] 유저 이름에 유니크한 값 주기

·2023년 2월 12일
0

NestJS

목록 보기
2/6

유저를 생성할 때 유저 이름이 이미 사용 되는 유저 이름을 사용하려 한다면 에러를 보내는 기능을 구현

i) 레포지토리에서 findOne 메소드를 이용해서 이미 같은 유저 이름을 가진 아이디가 있는지 확인 하고, 없다면 데이터를 저장하는 방법
하지만, 이는 데이터베이스 처리를 두번 해줘야하는 번거로움 발생

ii) 데이터베이스 레벨에서 만약 같은 이름을 가진 유저가 있다면 에러를 던져줌

user.entity.ts

@Unique(['username']) // 추가

결과)

이미있는 유저를 다시 생성하려 하면 500에러를 던짐
=> try-catch 구문으로 에러를 잡아줘야 함

  • error를 콘솔로 찍어봤을 때, 오류 코드는 23505

user.repository.ts

try {
      await this.save(user);
    } catch (error) {
      if (error.code === '23505') {
        throw new ConflictException('Existing username');
      } else {
        throw new InternalServerErrorException();
      }
    }
  • 같은 username으로 회원가입을 시도했을 경우
profile
개발자가 되는 과정

0개의 댓글