유튜브클론코딩(50)
-
[유튜브 클론코딩] 3.3 Video Model
3.3 Video Model 스키마 MongoDB에 우리의 파일들이 어떤 식으로 생겨야 할 지 알려줘야 하기 때문에 스키마를 작성한다. → 이런게 file의 형태, 즉 model의 형태 → 이것들은 models라는 폴더에 저장될 것이다. MongoDB에 스키마 작성하기(models > Video.js) models 폴더를 만들고 Video.js 파일을 만든다. import mongoose from "mongoose"; const VideoSchema = new mongoose.Schema({ }) ↑ Video.js 본격적으로 스키마를 정의한다. import mongoose from "mongoose"; const VideoSchema = new mongoose.Schema({ fileUrl: { typ..
2021.03.01 -
[유튜브 클론코딩] 3.2 Configuring Dot Env
3.2 Configuring Dot Env .env 파일 생성 먼저 .env라는 파일을 생성한다. 여기 MONGO_URL이라는 variable을 만들어본다. MONGO_URL = "mongodb://localhost:27017/mytube" PORT=4000 ↑ .env import mongoose from "mongoose"; import dotenv from "dotenv"; dotenv.config(); mongoose.connect( process.env.MONGO_URL, { useNewUrlParser: true, useFindAndModify:false } ); const db = mongoose.connection; const handleOpen = () => console.log("✅ C..
2021.03.01 -
[유튜브 클론코딩] 3.0 MongoDB and Mongoose
3.0 MongoDB and Mongoose MongoDB? 데이터베이스는 크게 두 종류의 데이터베이스가 있음 - 1) SQL 2)NoSQL MongoDB는 NoSQL로 구분된다. MongoDB는 더 적은 규칙과 더 적은 절차로 작업이 가능한 데이터베이스이다. 많은 사람들이 MongoDB를 사용하고 있다. 엄청 가볍고 초보자들도 쉽게 다룰 수 있기 때문에, 사용하기 엄청 쉽고 직관적으로 작동한다. MongoDB 설치하기 MongoDB를 윈도우에서 설치하는 방법을 검색해서 설치한다 (MongoDB community Server 설치하고 환경변수 설정하는 법 검색해서 하면 된다) 그리고 VScode를 다시 실행한 후, mongod 라고 쳐보고 mongo라고 쳤을 때 작동하면 된 것이다(나갈땐 exit) Mo..
2021.03.01 -
[유튜브 클론코딩] 2.25 More Controllers
2.25 More Controllers 비디오를 클릭하면 비디오 상세 페이지로 이동하도록 하기 누군가가 비디오를 클릭하면 비디오 상세 페이지로 보이도록 하고 싶다. mixin을 수정한다. mixin videoBlock(video = {}) .videoBlock a(href=routes.videoDetail(video.id)) video.videoBlock__thumbnail(src=video.videoFile, controls=true, autoplay=true) h4.videoBlock__title=video.title h6.videoBlock__views=video.views ↑ videoBlock.pug 이제 videoBlock을 사용하는 곳에서 인자를 입력할 때 id: video.id를 추가로 보..
2021.02.24 -
[유튜브 클론코딩] 2.24 Log In and User Profile Controller
2.24 Log In and User Profile Controller Login 화면 만들기 Login도 비슷한 작업을 해야하므로 이전의 login은 getLogin으로 이름을 바꾸고 postLogin 함수를 만든다. login에는 할 일이 많지는 않다. 로그인을 하면 그냥 로그인 버튼만 클릭하는 것이다. 만약 로그인에 성공했다면 routes.home으로 redirect하면 돼. join의 흐름과 같지. export const getLogin = (req,res) => res.render("login", {pageTitle: "Login"}); export const postLogin = (req,res) => { res.redirect(routes.home); } ↑ userController.js ..
2021.02.24 -
[유튜브 클론코딩] 2.23 Join Controller
2.23 Join Controller search화면 작업하기(home화면과 유사함) 이제 다음으로 search 화면을 작업할 것이다. search도 home 화면과 거의 비슷하다. 일단은 비디오 검색 기능을 구현하지는 않겠다.(데이터베이스를 아직 안했기 때문에) videoController.js에서 search에 videos(데이터베이스)를 전달해준다. search.pug도 똑같이 작업해준다.(mixin을 include해서) export const search = (req, res) => { const {query: { term: searchingBy }} = req; res.render("search", {pageTitle: "Search", searchingBy, videos}); }; ↑ vide..
2021.02.24