오늘의 멍청함..
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);
}
}
잘 돌아감 심지어 오류도 없음
충격으로 폴더를 휴지통에 넣을까말가 고민함..
허 그래 이제라도 알았으니 다행이...지..
그런데 레포를 따로 안 빼서 고것이 신기했다