typeerror: this.userrepository.createUser is not a function

Jean·2023년 7월 31일
0

오늘의 멍청함..

오류 시작..

john ahn님의 강의를 듣다가 오류가 났다

typeerror: this.userrepository.createUser is not a function

엥? createUser가 없다고??

//서비스
@Injectable()
export class AuthService {
  constructor(
    @InjectRepository(UserRepository)
    private userRepository: UserRepository,
  ) {}
  async signUp(authCredentialDto: AuthCredentialDto): Promise<void> {
    return this.userRepository.createUser(authCredentialDto);
  }
}

//레포

export class UserRepository extends Repository<User> {
  async createUser(authCredentialDto: AuthCredentialDto): Promise<void> {
    const { username, password } = authCredentialDto;
    const user = this.create({
      username,
      password,
    });
    try {
      await this.save(user);
    } catch (err) {
      if (err.code === '23505') {
        throw new ConflictException('닉네임은 고유해야합니다');
      } else {
        throw new InternalServerErrorException();
      }
    }
  }
}

아니 똑바로 있는데??

궁금해서 검색을 했다
인프런에 똑같은 오류로 올라오신 분이 계셨다
음 대충 슥슥 읽어보니 버전 문제인가?

typeORM버전을 0.2로 바꾸고 실행

오류..

어...그럼 @InjectRepository(UserRepository)
이것도 문제라니까 그냥 엔티티로 바꿔넣어보고

해결..?

암튼 몇시간 동안 붙잡다가 도저히 안되겠어서
튜터님 찾아갔다
슥슥 보시더니


모듈에 레포가 없는것 같은데요?


엥..?

어라 진짜네 그런데 이건 다른 모듈도 이런디 잘 돌아가요..

바꾸고 돌려봄

TypeError: Cannot read properties of undefined (reading 'create')

에러가 달라졌자는 것은.. 인식이 됐구나..!!
아니 그런데 다른 모듈은 어케 돌아가는거야,....?

그건 저도 모르죠

그런데 말입니다

차분히 저 create에 대해 찾아보고 있던 중
아무리 생각해도 의존성 주입이 안되는 것 같아 방황하는데....

아 이거 안되겠다 1년전 영상말고 최근 영상보자 (특) 영어임

그런데 최근 영상에서는 다들 레포지토리를 안 쓰는....?
어? 너 뭐하는?

당황해서 다른 최근 영상을 보니까..
다들 레포를 안 쓰고있고..

공식 문서 다시 찾아봄 -> 어쩐지 레포가 없더라!!!!!!!

설마해서 코드를 레포 없는 버전으로 바꿔봄

//서비스
@Injectable()
export class AuthService {
  constructor(
    @InjectRepository(UserRepository)
    private userRepository: Repository<User>,
  ) {}
  async signUp(authCredentialDto: AuthCredentialDto): Promise<void> {
    return this.userRepository.createUser(authCredentialDto);
  }
}

잘 돌아감 심지어 오류도 없음

충격으로 폴더를 휴지통에 넣을까말가 고민함..
허 그래 이제라도 알았으니 다행이...지..

그런데 레포를 따로 안 빼서 고것이 신기했다

profile
햇내기 개발자 지망생

0개의 댓글