Video Model

0_CyberLover_0·2022년 4월 4일
0

Node.JS # 03

목록 보기
4/19

video model을 만들기 위해서 먼저 mongoosemongoose에서 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 modelimport 하고 있지 않기 때문이다.

그래서 video model을 미리 import해 어디서든 사용 할수 있게 하면 된다.

server.js에서

import "./db";
import "./models/Video";
import express from "express";

dbimport하고 Videoimport한다. 당장 Video 사용하지 않을거니깐

저렇게 작성해 놓는다. 서버를 재시작 하면 작동을 잘 하게 된다.

이제 video model을 사용 직전이다. 그전에 한번도 복습하기로 한다.

먼저 video의 형태를 정해 줬다. 데이터가 어떤 형태로 구성 되는지 설정 했을 뿐

실존하는 값을 작성하지는 않았다. 특정 데이터 예를 들면 'titleString형식을 가진다.' 라고만 했다.

나중에 실존 하는 비디오를 만들고, title을 보내면 mongoose가 전달 받은 데이터의 형식이 String인지 확인해 주는 거다.

여기에 필요한 validation 은 모두가 무료로 사용 할수 있다.

데이터의 형식을 정의해줬고, 최대한 상세하게 설명했고, 그 다음에 model을 만든다.

modelmodel의 이름과 데이터의 형태인 schema로 구성하면 된다.

그 다음 해당 modeldafaultexport해주면 된다.

그리고 모두가 해당 model을 알 수 있게 해줘야 한다.

server.js에서 databaseimport해서 연결 시킨후 해당 연결이 성공적일때

videoimport해주는거다. 그 연결로 db는 우리 video model을 인지하게 되는 거다.

dbmongoose와 연결시켜서 video model을 인식시키는 거다.

profile
꿈꾸는 개발자

0개의 댓글