video model
을 만들기 위해서 먼저mongoose
를mongoose
에서import
해야한다.
video.js
import mongoose from "mongoose";
const videoSchema = new mongoose.Schema({
title: String,
description: String,
createdAt: Date,
hashtags: [{ type: String }],
meta: {
views: Number,
rating: Number,
},
});
const Video = mongoose.model("Video", videoSchema);
export default Video;
그리고 model
을 생성하기 전에 model
의 형태를 정의해 줄 필요가 있다.
model
의 생김새를 말하는 거다. 보통 schema
라고 알려져 있다.
const videoSchema = new mongoose.Schema({})
이렇게 작성한 코드 안에
비디오 형식을 작성 하는 거다. 실제 데이터는 안 넣는 거고 형식만 정의 해주는 거다.
비디오의 title
과 그 데이터 형식을 정하는 것이다. 이 경우엔 Stirng
으로 설정해준다.
비디오에 description
이 있다고 가정하고, 작성해 준다. 이 또한 String
으로 해준다.
그리고 영상 생성일이 비디오 model
에 있다 치면 해당 데이터는 data
타입의 데이터를 답고 있어댜 한다.
이런 형식의 코드를 처음 봐서 당황스러울 수 있지만 현재는 크게 상관 안해도 된다.
나중에 차차 알아 가는게 더 좋다.
추가적으로 영상에 hashtag
를 추가해 준다. 데이터 형식은 String
이라 할수도 있지만
[ ]
= array
로 만들어 준다. 하지만 그냥 array
가 아닌 String
타입으로 작성해 준다.
이걸로 이제
video schema
가 완성되었고, 데이터를 더 많이 집어 넣어 본다.
rating,
views
들도 넣어준다. metadata
형식으로 작성해 준다.
데이터의 형식과 형태에 대해서 충분히 설명 되었다.
mongoose
라서 언제든 내용을 추가하고 수정할수 있다. 데이터 형태에 대해서 걱정할 필요가 없다.
이제 드디어 model
을 만들어 줄거다.
const Video = mongoose.model("Video", videoSchema);
export default Video;
이런식으로 해준다.
이제 해줘야 할건 올린 비디오를 모두가 알수 있도록 만드는 거다.
영상 자체가 아니라 video model
의 존재를 알려주는 거다.
지금 당장은 video model
이 존재 하지 않다. 어디에도 video model
을 import
하고 있지 않기 때문이다.
그래서 video model
을 미리 import
해 어디서든 사용 할수 있게 하면 된다.
server.js
에서
import "./db";
import "./models/Video";
import express from "express";
db
를 import
하고 Video
를 import
한다. 당장 Video
사용하지 않을거니깐
저렇게 작성해 놓는다. 서버를 재시작 하면 작동을 잘 하게 된다.
이제
video model
을 사용 직전이다. 그전에 한번도 복습하기로 한다.
먼저 video
의 형태를 정해 줬다. 데이터가 어떤 형태로 구성 되는지 설정 했을 뿐
실존하는 값을 작성하지는 않았다. 특정 데이터 예를 들면 'title
은 String
형식을 가진다.' 라고만 했다.
나중에 실존 하는 비디오를 만들고, title
을 보내면 mongoose
가 전달 받은 데이터의 형식이 String
인지 확인해 주는 거다.
여기에 필요한 validation
은 모두가 무료로 사용 할수 있다.
데이터의 형식을 정의해줬고, 최대한 상세하게 설명했고, 그 다음에 model
을 만든다.
model
은 model
의 이름과 데이터의 형태인 schema
로 구성하면 된다.
그 다음 해당 model
을 dafault
로 export
해주면 된다.
그리고 모두가 해당 model
을 알 수 있게 해줘야 한다.
server.js
에서 database
를 import
해서 연결 시킨후 해당 연결이 성공적일때
video
를 import
해주는거다. 그 연결로 db
는 우리 video model
을 인지하게 되는 거다.
db
를 mongoose
와 연결시켜서 video model
을 인식시키는 거다.