Model: Schema를 감싸는 역할
Schema: 정보가 갖춰야 하는 구성요소와 형식을 정의한 것
(Schema의 본래 정의와는 거리가 먼 것 같지만 일단은 이렇게 이해)
예시: User Schema
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,
},
});
models/User.js
에 다음과 같은 코드를 작성한다.
// User Schema
const mongoose = require("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,
},
});
const User = mongoose.model("User", userSchema); // 모델로 Schema 감싸기
module.exports = { User }; // 모델을 다른 곳에서도 사용할 수 있게 export