brunch

You can make anything
by writing

C.S.Lewis

by 이종복 Jun 06. 2019

Video Model 만들기


이번 글에서는 Video Model 만드는 법을 소개하겠습니다. 


우선 알아야 할 점은 'MongoDB 에 Video를 직접 저장하지 않는다는 점'입니다.

왜냐하면 Video를 직접 저장하면 데이터베이스가 무거워지기 때문입니다.

따라서 대신 비디오의 URL만 저장해주는데, 이를 TEXT 데이터베이스라고 합니다.

실제 비디오는 서버(ex)Amazon Web Service)에 저장되게 됩니다.



1) 우선 models라는 폴더를 만들고, 그 위치에 Video.js라는 파일을 만들어줍니다.

     그리고 두 줄의 코드를 추가합니다. 

      import mongoose from "mongoose" : mongoose 모듈을 import합니다.

      const VideoSchema = new mongoose.Schema({}): VideoSchema라는 이름의 

                                                                                                새로운 스키마를 만듭니다. 


      스키마란? 데이터베이스 스키마는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 

                        형식 언어로 정의한 구조를 의미합니다. 


2) 그리고 fileUrl이라는 변수를 설정해줍니다. 

     이 변수의 type은 String이며, required는 충족되어야 하는 조건을 의미합니다. 

     즉, Video를 생성할 때는 반드시 File URL이 필요하며,

      File URL이 없을 경우 "File URL is required"라는 에러 메시지가 뜨게 됩니다.  


3) 다음은 title, description, views, createdAt과 같은 변수들을 추가해줍니다.

     각각은 제목, 설명, 조회수, 생성시간을 의미합니다. 

 

    이 때, description과 같이 한 줄로 표현되는 변수도 있으며,

     views와 createdAt에는 default 값(0, Date.now())이 추가될 수 있습니다. 


4) 이제 Schema를 이용해서 Model을 만들 차례입니다. 

     (https://mongoosejs.com/docs/models.html)

     Model 과 Document의 관계는 마치 객체지향에서 클래스와 객체의 관계랑 유사하다고 보시면 됩니다. 

    

     const model = mongoose.model("Video", VideoSchema)로 

     Video라는 이름의 새로운 Model을 만들어줍니다. 

    그리고 마지막에 export default model; 을 추가해줍니다. 


5) 이 상태로는 우리 데이터베이스가 새로운 Model이 생성되었다는 것을 인식할 수 없습니다. 

     즉, 연결은 되어있지만 거기에 Model이 있다는 것을 인지하지 못합니다. 

     이를 해결하기 위해 init.js로 이동해서 import "./models/Video"를 통해서 

     새로 생성된 Video Model을 추가해줍니다. 


6) npm start를 통해 실행하면 결과적으로 잘 실행됨을 확인할 수 있습니다. 


"다음은 노마드코더(https://academy.nomadcoders.co/)의 [초급 풀스택] 유튜브 클론 코딩 강의를 참고하였습니다."

매거진의 이전글 dotenv 설정하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari