모델은 스키마를 감싸주는 역할
예를들어 회원 가입을 한다고 하면 우리가 적는 정보는 이름, 전화번호, 주소 등이 있다
이런 것들을 어떤 타입으로 받고, 최대 길이는 몇인지 등 DB의 골격?을 정하는
것이라고 생각하면 편하다
우선 models라는 폴더를 프로젝트 폴더 내에 하나 만들자
그 폴더 내부에 User.js 라는 파일을 하나 만들고 아래 코드를 작성하자
const userSchema = mongoose.Schema({
name: {
type: String,
maxlength: 50
},
email: {
type: String,
trim: true,
unique: 1
},
password: {
type: String,
minlength: 5
},
role: {
type: Number,
default: 0
},
image: String,
token: {
type: String
},
tokenExp:{
type: Number
}
})
이메일에 trim은 예를 들어 누가 chl qnrl@naver.com 이렇게 빈공간을 작성하면
빈공간을 없애주는 기능을 한다
role은 관리자, 일반 사용자를 구분하기 위하여 넣었다
토큰 EXP는 토큰의 유효기간을 의미한다
위에서 스키마를 모델로 감싼다고 했다
아래의 코드를 작성하자
const User = mongoose.model('User', userSchema)
module.exports = { User }
첫 번째 코드는 스키마를 모델로 감싸는 코드이다
두 번째 코드는 우리가 만든 모델은 User.js 파일 내부에 있기 때문에
다른 파일에서도 User 모델을 사용할 수 있게 export 해주는 것이다