회원 정보 수정하는 중, 처음 1회는 이상이 없지만 그 후부터는 에러가 발생
const user = await this.userRepository.findOneBy({ id });
if (!user) {
throw new NotFoundException('사용자를 찾을 수 없습니다.');
}
const passwordCheck = await bcrypt.compare(password, user.password);
if (!passwordCheck)
throw new BadRequestException('비밀번호가 일치하지 않습니다');
const hashedPassword = await bcrypt.hash(newPassword, 10);
user.name = name;
user.password = hashedPassword;
await this.userRepository.update(
{ id },
{ name, password },
);
await this.userRepository.save(user);
user.name = name;
user.password = hashedPassword;
위에 과정을 통해 데이터가 저장이 될 거라 예상했지만
await this.userRepository.update(
{ id },
{ name, password: hashedPassword},
);
으로 업데이트를 해주어야 했음
실제 DB 작업은 TypeORM이 진행하지만 데이터베이스의 상태와 사용자 객체의 상태를 일치시켜 주는 역할도 필요함.
공식문서나 검색을 통해 메서드들의 역할과 사용법을 확실히 해야겠다.