본문 바로가기
Web/React Node js

노드 기초 강의 (3) - MongoDB Model & Schema

by SeleniumBindingProtein 2022. 2. 26.
728x90
반응형

* 회원가입시에 회원 이름, 나이 등의 정보가 데이터베이스에 들어가게 되며, 그 정보들을 관리하기 위해 유저 모델과 스키마를 만들어야 함

1. Model : Schema를 감싸주는 역할

    Schema : 테이블을 디자인하기 위한 청사진으로, 각 정보에 대한 하나하나의 역할을 지정해주는 코드임

     => 몽고DB는 NoSQL로 테이블이 없으며, document에 아무거나 넣어도 에러가 나지 않음

     => 먼저 사용자가 작성한 스키마를 기준으로 데이터를 DB에 넣기 전에 먼저 검사하도록 함

     => 스키마에 어긋난 데이터가 있으면 에러를 발생시킴

 

2. User Model 생성 

 

//몽구스 모듈 가져오기
const mongoose = require('mongoose');

//몽구스 모듈로 스키마 만들기
const userSchema = mongoose.Schema({
    name: {
        type: String,
        maxlength: 50
    },
    email: {
        type: String,
        trim: true,	//빈칸을 없애줌
        unique: 1 //똑같은 이메일을 쓰지 못하게 설정
    },
    password: {
        type: String,
        minilength: 5
    },
    lastname: {
        type: String,
        maxlength: 50
    },
    role: {				//관리자, 일반유저를 나누기 위해 사용
        type: Number,	//유저의 role을 숫자로 부여함
        default: 0		//임의로 role을 지정하지 않았을 땐 0으로 설정
    },
    image: String,		//{} 오브젝트를 사용하지 않고 단순하게 사용할 수 있음
    token: {
        type: String	//유효성 관리
    },
    tokenExp: {		//token 사용의 유효기간 설정
        type: Number
    }
})

//model로 감싸주기
const User = mongoose.model('User', userSchema)

//exports
module.exports = {User}

 

 

 

728x90
반응형

댓글