data 모델을 정하고 그것을 DB에 저장하기 전 점검은 필수이다. 점검사항을 세부적으로 정리할수록 에러가 줄어든다.
import mongoose from "mongoose";
//define shape of model
const videoSchema = new mongoose.Schema({
title: { type: String, required: true, trim: true, maxLength: 50 },
description: { type: String, required: true, trim: true, maxLength: 100 },
createdAt: { type: Date, required: true, default: Date.now },
hashtags: [{ type: String, trim: true }],
meta: {
views: { type: Number, default: 0 },
rating: { type: Number, default: 0 },
},
});
const Video = mongoose.model("Video", videoSchema);
export default Video;
title & description에 trim : true
를 지정했다. string의 맨 앞과 뒤에 있는 공백을 제거한 후 저장하도록 한다.
title & description에 maxLength
를 지정했다. input form에 maxlength를 지정했지만 저장 전에 DB에서도 점검할수 있는 장치를 둔다. (개발자도구에서 maxlength 지울수 있음;;)
required : true
필수 항목을 지정할수도 있다.
default : ...
저장시 기본값을 모델에 저장하므로서 controller의 코드를 간결하게 만들 수 있다. createdAt
에서 default: Date.now
에 ()를 붙이지 않는 이유는 mongoose가 data를 저장할때만 함수를 실행하도록 하기 위함이다.