Model schema (심화)

404·2022년 1월 9일
0

Database

목록 보기
3/9

에러를 줄이기 위한 필수 작업

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;
  1. title & description에 trim : true 를 지정했다. string의 맨 앞과 뒤에 있는 공백을 제거한 후 저장하도록 한다.

  2. title & description에 maxLength를 지정했다. input form에 maxlength를 지정했지만 저장 전에 DB에서도 점검할수 있는 장치를 둔다. (개발자도구에서 maxlength 지울수 있음;;)

  3. required : true 필수 항목을 지정할수도 있다.

  4. default : ... 저장시 기본값을 모델에 저장하므로서 controller의 코드를 간결하게 만들 수 있다. createdAt 에서 default: Date.now에 ()를 붙이지 않는 이유는 mongoose가 data를 저장할때만 함수를 실행하도록 하기 위함이다.

profile
T.T

0개의 댓글