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 |