씨네
공부하는 개발자 강씨네
씨네
  • 분류 전체보기 (460)
    • Web (21)
      • HTML (11)
      • CSS (10)
    • JS 관련 (49)
      • JavaScript (27)
      • JQuery (22)
    • TS 관련 (15)
      • TypeScript (15)
    • NodeJS (7)
      • NodeJS (7)
    • 따라하며 배우는 시리즈 (23)
      • NodeJS & ReactJS Basic (23)
      • NodeJS & ReactJS Movie (0)
      • NodeJS & ReactJS Youtube (0)
      • NodeJS & ReactJS ChatBot (0)
    • SPA (14)
      • React (14)
      • Vue (0)
      • Anguler (0)
    • Java 관련 (118)
      • Java (52)
      • JDBC (6)
      • JSP & Servlet (18)
      • Spring Legecy (38)
      • SpringBoot (4)
    • Python (26)
      • Python (20)
      • PyMongo (1)
      • Django (5)
    • Git (24)
      • Github (24)
    • RDB (22)
      • Oracle (21)
      • MySQL (1)
    • NoSQL (5)
      • MongoDB (5)
    • OS (4)
      • Linux (4)
    • 빅데이터 (2)
      • hadoop (2)
    • IDE (20)
      • eclipse (11)
      • VSCODE (4)
      • VisualStudio (1)
      • IntelliJ (1)
      • PyCharm (1)
      • DBeaver (2)
    • Install (3)
      • Tomcat (1)
      • Docker (1)
      • Anaconda (1)
    • 오류&에러 (28)
      • TS (2)
      • NodeJS (7)
      • SQL (8)
      • Java (1)
      • Spring (4)
      • Git (6)
      • 기타 (0)
    • 알고리즘 (67)
      • 수열 (1)
      • 백준(backjoon) (39)
      • Programmers (27)
    • 자격증 (5)
      • SQLD (5)
    • 기타 (2)
    • IT유튜브로 지식쌓기 (2)

공지사항

인기 글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
씨네

공부하는 개발자 강씨네

[NodeJS] 노드 리액트 기초 - MongoDB Model & Schema(몽고디비 모델, 스키마)
따라하며 배우는 시리즈/NodeJS & ReactJS Basic

[NodeJS] 노드 리액트 기초 - MongoDB Model & Schema(몽고디비 모델, 스키마)

2022. 8. 29. 13:18
728x90

 

 

모델은 스키마를 감싸주는 역할을 하고 스키마는 정보들을 하나하나 지정해주는것을 의미합니다.

이해가 잘 안가실수도 있으니 코드를 통해 알아보겠습니다.

 

const mongoose = require('mongoose');

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

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

module.exports = { User }

몽구스 모듈을 가져와서 스키마를 생성했습니다.

스키마는 필요한 데이터를 입력하면 되는데 회원가입과 관련된 스키마를 생성했습니다.

스키마는 오브젝트로 생성을 하는데 오브젝트 안에 또 오브젝트가 들어갈 수도 있습니다.

type은 말그대로 데이터 타입을 지정해줍니다.

maxLength는 최대 길이를 의미하며 trim은 공백을 제거해주는 역할을 합니다.

예를들어 Kang cine@cine.co.kr 라는 이메일이 있을경우 가운데 공백을 제거하게 되는거죠.

또한 이미지는 중복이 되면 안되는 유일한 값이기때문에 unique를 설정했습니다.

default는 임의로 뭔가를 지정해주지 않을경우 기본값으로 주는 것을 말합니다.

 

이렇게 생성한 스키마를 model로 감싸게 됩니다.

 

만약 다른 모듈에서도 이 모델을 사용하고 싶다면 model.exports를 이용하여 밖으로 내보내 주면 외부에서도 사용할수 있게됩니다.

 

728x90
저작자표시 (새창열림)

'따라하며 배우는 시리즈 > NodeJS & ReactJS Basic' 카테고리의 다른 글

[NodeJS] 노드 리액트 기초 - 비밀 설정 정보 관리(모듈 이용해서 비밀정보 관리)  (1) 2022.09.02
[NodeJS] 노드 리액트 기초 - Nodemon(노드몬) 설치  (0) 2022.09.01
[NodeJS] 노드 리액트 기초 - BodyParser를 이용한 회원가입 기능(with.PostMan)  (0) 2022.08.31
[NodeJS] 노드 리액트 기초 - MongoDB 연결하기  (0) 2022.08.26
[NodeJS] 노드 리액트 기초 - express 라이브러리 설치 및 서버 실행  (0) 2022.07.25
    '따라하며 배우는 시리즈/NodeJS & ReactJS Basic' 카테고리의 다른 글
    • [NodeJS] 노드 리액트 기초 - Nodemon(노드몬) 설치
    • [NodeJS] 노드 리액트 기초 - BodyParser를 이용한 회원가입 기능(with.PostMan)
    • [NodeJS] 노드 리액트 기초 - MongoDB 연결하기
    • [NodeJS] 노드 리액트 기초 - express 라이브러리 설치 및 서버 실행
    씨네
    씨네
    개발자 씨네가 공부하는 내용을 기록 겸 공유하는 블로그입니다!

    티스토리툴바