2023. 5. 4. 15:38ㆍ기술 창고/Node.js
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를 통해 실제 모델로 적용합니다.
'기술 창고 > Node.js' 카테고리의 다른 글
[Node] SSH를 이용하여 GIT HUB 연결 (0) | 2023.05.18 |
---|---|
[Node] GIT 설치 및 연동 (0) | 2023.05.04 |
[Node] 터미널 명령어 모음 (0) | 2023.05.04 |
[Node] MongoDB 연결 + Mongoose 설치 및 적용 (0) | 2023.05.04 |
[Node] Node란? + Node.js 와 Express.js 다운 방법 (0) | 2023.05.04 |