Model은 Schema를 감싸주는 역활
어떠한 상품에 관련된 글을 작성한다면... 그 글의 작성자, 제목, 내용, 날짜 등등이 필요하고 해당 데이터들의 타입은 무엇이고 그 타입의 길이는 어디까지 가능한지 등등 지정해준것을 스키마(Schema)라고 말한다.
회원가입과 로그인을 구현하기 위해서는 회원또는 사용자에 대한 스키마가 필요하다.
이것을 몽구스를 통하여 스키마를 만들고, 만든 스키마를 모델로 매핑하는 과정이 필요하다.
우선models
폴더를 생성한 뒤,User.js
라는 파일을 만들어 스키마를 정의를 해보자.
그리고 해당 파일에는 스키마와 모델을 작성하기 위해 몽구스를 받아온다.
그리고 이제
User
의 스키마를 작성할 것인데 무엇이 필요한지 생각해본다면
유저에게는name
,email(Id)
,password
,lastname
,role(일반, 관리자 권한)
,image(profile)
,token
,tokenExp
이 필요하다.
이런 Schema를 만들기 위해mongoose.Schema()
를 이용해 정의해 주면된다.
위와 같이 작성해서 스키마를 정의해 준다.
그리고 이 스키마를 모델로 감싸주는 작업이 필요하다.
이건mongoose.medel()
을 이용하면 된다.
마지막으로 다른곳에서 이 모델을 사용하기 위해 작성한 User을 exports 해준다.