[TIL] trello 프로젝트

최하온·2024년 3월 19일
0

TIL

목록 보기
50/71
post-thumbnail

🚨Issue occuring


회원 정보 수정하는 중, 처음 1회는 이상이 없지만 그 후부터는 에러가 발생

💦What I tried


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);
  • 공식문서 확인 후 1번째 요소로 기준으로 2번에 요소들을 변경하는 것을 확인
    1) 유저 확인
    2) 입력한 비밀번호와 유저 비밀번호 확인
    3) 데이터 변경 및 업데이트
    4) save

💡How solve issue


user.name = name;
user.password = hashedPassword;

위에 과정을 통해 데이터가 저장이 될 거라 예상했지만

    await this.userRepository.update(
      { id },
      { name, password: hashedPassword},
    );

으로 업데이트를 해주어야 했음

📃What I learned new


실제 DB 작업은 TypeORM이 진행하지만 데이터베이스의 상태와 사용자 객체의 상태를 일치시켜 주는 역할도 필요함.

🤔Realization


공식문서나 검색을 통해 메서드들의 역할과 사용법을 확실히 해야겠다.

0개의 댓글