[Node] MongoDB 모델링 및 스키마 설정

2023. 5. 4. 15:38기술 창고/Node.js

728x90
SMALL

Schema

관리하고자 하는 데이터들의 타입이나  설정들을 지정해주는 것.

 

 

Model

설정해준 스키마를 감싸서 만들어낸 실제 관리 모델.

 

 

 

모델링 / 스키마 설정

 

현재 있는 경로에서 models 라는 폴더 경로를 따로 만들어주겠습니다. (필수 X)

해당 폴더 내에서 User.js 모델 js 파일을 생성해줍니다.

 

 

const mongoose = require('mongoose');

mongoose 모듈을 호출합니다.

 

 

const userSchema = mongoose.Schema({
    name: {
        type: String,
        maxlength: 50,
    },
    email: {
        type: String,
        trim: true,
        unique: 1
    },
    password: {
        type: String,
        minlength: 5
    },
    lastname: {
        type: String,
        maxlength: 50
    },
    role: {
        type: Number,
        default: 0
    },
    image: String,
    token: {
        type: String
    },
    tokenExp: {
        type: Number
    }
})

호출한 mongoose의 Schema 함수를 사용하여 스키마를 만들어줍니다.

- name :

유저의 이름이 들어갈 속성이며, 타입은 String, 최대 길이는 50으로 지정했습니다.

- email :

유저의 이메일 정보 속성입니다.

타입은 String, 고유값을 가지게끔 unique: 1 설정을 추가하였고, trim: true 설정을 부여함으로서 이메일에 공백이 들어가면 제거해주는 설정을 넣었습니다.

- password :

유저의 비밀번호 속성입니다.

타입은 String, 최소 길이를 5로 지정하였습니다.

- lastname : 

유저의 성을 뜻하는 속성입니다.

타입은 String, 최대 길이는 50으로 지정하였습니다.

- role : 

유저의 권한 속성입니다.

타입은 Number, 기본값은 0으로 지정하였습니다.

- image : 

이미지 사진 주소가 들어갈 속성입니다.

타입은 String입니다.

- token :

유저마다 가지고 있는 인증서 역할을 하는 토큰입니다.

타입은 String 입니다.

- tokenExp :

토큰 만료일 속성입니다.

타입은 Number 입니다.

 

 

const User = mongoose.model('User', userSchema)

module.exports = {User}

mongoose 의 model 함수를 사용하여 User라는 엔티티명을 부여하고 위에서 생성한 userSchema를 넣어서  module.exports를 통해 실제 모델로 적용합니다.

728x90
반응형
LIST