이것저것

MongoDB Model과 Schema 본문

JS 프레임워크/React

MongoDB Model과 Schema

곰태태 2021. 1. 14. 17:34
반응형
SMALL

Model이란?

Schema를 감싸주는 역할을 한다.

그러면 Schema는??

어떠한 상품에 관련된 글을 작성한다고 하면

글을 작성한 사람은 누구인지

작성을 할때 post의 이름은 무엇인지

즉, Model의 상세정보를 하나하나 지정해주는 것을 Schema라고 한다.

//스키마 예시
const productSchema = mongoose.Schema({
	writer : {
    	type: Schema, Types.ObjectId,
        res: 'User'
	},
    title: {
    	type: String,
        maxlength: 50
    },
    description: {
    	type: String
    }
}, { timestamps: true })

 

user Model 만들기.

Model 폴더를 만들고 안에 User.js를 생성한다.

const mongoose = require('mogoose');

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
    }
})

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

module.exports = { User }

trim은 스페이스를 없애주는 역할을 한다.

unique는 말그대로 유일성을 부여하는 것이다.

role은 어떤 유저가 일반유저인지 관리자인지 속성 부여해줄수있다. ()

token은 나중에 유효성과 같은 기능을 관리할 수 있다.

tokenExp는 토큰의 유효기간을 설정할 수 있다.

마지막에서 두번째 줄은 Schema를 Model로 감싸는 것이다.

mongoose.model에 스키마명과 스키마를 써준다.

마지막은 다른 곳에서 위의 스키마를 쓰고 싶으니 export를 해주는것이다.

반응형
LIST

'JS 프레임워크 > React' 카테고리의 다른 글

JSX  (0) 2021.04.12
Node.js  (0) 2021.04.06
Node.js와 Express.js, MongoDB 설치까지  (0) 2021.01.14
동적인 주소값  (0) 2020.08.03
redirect  (0) 2020.08.03
Comments