인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Sounghyun Jeon님의 프로필 이미지
Sounghyun Jeon

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #10 Bcrypt로 비밀번호 암호화 하기

isModified 부분 질문을 드립니다.

작성

·

911

1

if(user.isModified('password')){

}

위 부분에서 user는 this를 가리키고 있는 것은 인지했고 isModified는 user에 있는 속성이 아니라 사용자가 임의로 지정해 놓은 것 같은데요 임의로 지정한 isModified 안에 'password'가 어떻게 오는 것인지 모르겠습니다..

답변 1

5

안녕하세요, Sounghyun Jeon님!

isModified() 라는 함수는 mongoose 모듈에 포함되어있는 함수입니다.

파라미터로 들어온 값이 db에 기록된 값과 비교해서 변경된 경우는 true를, 그렇지 않은 경우는 false를 반환하는 함수입니다.

user 생성 시에는 항상 true이며, user가 수정되는 경우에는 password가 변경되는 경우에만 true를 반환합니다.

user.password의 변경이 없는 경우라면 이미 해당 위치에 hash가 저장되어있으므로 false를 반환해 다시 암호화를 하지 않습니다.

현재 생성한 userSchema가 mongoose를 활용해서 생성한 schema이기 때문에 mongoose 모듈에 포함되어있는 isModified() 를 사용할 수 있다고 이해하시면 될 것 같습니다.

혹시 궁금하신 점이 있다면 댓글 남겨주세요.

도움이 되었으면 좋겠습니다. :)

Sounghyun Jeon님의 프로필 이미지
Sounghyun Jeon

작성한 질문수

질문하기