
앞전에 이 postUpload에서 async, await이 필요하다고 했는데, 다른 예제가 더 이해가 쉬울 것 같다. 일단 이해를 하고 postUpload를 다시보자 홈페이지를 get요청 받자마자 나오는 controller인데 여기도 async가 필요하다. await 뒤에 적힌 Video.find({})는 데이터베이스에서 모든 Video 를 찾겠다는 뜻이다. 그리고 그걸 변수 videos에 담아서 home.pug에 보낼것이다. 근데 기본적으로 데이터베이스는 당연히 자바스크립트보다 느리다. 데이터베이스는 자바스크립트 밖에 있고 따로 소통을 해야되니까. 아무리 빠르다고 해도 자바스크립트보다 0.0000001초라도 느릴것이다. 그래서 위 코드에서 보면 데이터베이스에서 Video를 다 찾을때까지 "대기"했다가 ..

이제 post로 받은 데이터를 db에 저장하기만 하면 된다. 강의에서는 mongoDB를 사용하려 한다. mongo는 noSQL이라 초보자가 다루기 편하다고 한다. noSQL이라는 말이 뭔가 document 기반이라서 아무데이터나 넣으면 넣는대로 저장할 수 있다는 말 같은데.. 이게 스키마 기능이 필요한 이유인 것 같다. sql은 테이블이라는게 있어서 잘못된 정보는 들어가지 않지만 몽고디비는 넣으면 들어가니까 그걸 막기 위해 스키마를 만드는 것 같다. (추상적인 느낌이고 정확히는 모르니 나중에 알게되면 수정할 예정입니다.) 그렇다면 mongoose는 무엇이냐. mongoDB가 데이터베이스이고 mongoose는 그 데이터베이스랑 노드js 서버를 연결해주는 뭔가라고 생각하면 된다고 한다. 자바스크립트 코드를 ..

일단 지금 서버를 만들고 router, controller,view를 만들어서 html을 띄우는 상태인데, 이런 페이지는 쓸모가 없다. 사용자로부터 뭔가 데이터를 입력받아서 그 데이터를 저장하고 필요할때 가져와야 한다. 이때 필요한게 데이터베이스이다. 사용자로부터 받은 회원가입 정보를 데이터베이스에 저장해야 한다. 근데 나는 데이터베이스는 고사하고 데이터를 받는 방법도 모른다. 일단 받는 방법을 알아야 저장을 고민할 수 있다. 받는 방법이 바로 post 이다. 앞에서는 get으로 실습해왔다. get 요청은 단순히 가져와 라고 요청하는 느낌이다. 예를들면 네이버에 접속한다거나, 구글에 검색한다거나. 하는것들은 단순한 get 요청이다. videoRouter.get("/upload", getUpload) co..

1.렌더링 렌더링은 이 부분이다. 그전에는 res.send()로 단순한 텍스트를 보내는 식으로 req를 마무리 해줬지만, 사실 res.render()로 html을 보낼 수 있다. 그래서 rendering이라고 하는 것 같다. 위 코드는 home.pug라는 view파일을 랜더링 한다는 의미이고 두번째 인자로 오는 중괄호는 home을 랜더링 할때 home으로 같이 보내는 변수다. pageTitle이라는 변수와 video:video를 보내고 있는 것이다. 아마 home.pug에서 활용할 것이다. 2.pug 지금까지 서버를 만들고 라우터와 컨트롤러까지 만들었다. 이제 실제로 브라우저에 뿌려줄 html을 만들어서 렌더링 시킬준비를 해야한다. 강의에서는 html을 편하게 쓰기 위해 pug를 이용한다. pug는 ht..

1. router and controller 사용자는 특정 url로 우리 서비스를 이용하게 된다. 사용자가 사용하게 될 url을 정리하고 코드를 구성하고 유지관리 가능하도록 정리하기 위해 router를 사용한다. 나는 유튜브 클론코딩을 하며 세가지의 라우터를 만들었다. 가장 큰 데이터 덩어리를 생각하면 된다. 유튜브의 가장 큰 데이터는 video, user이다. 그래서 globalRouter, videoRouter, userRouter 세가지를 만들었다. 라우터를 만들게 되면 url에 따라 코드를 구성하기 쉽다. 그리고 url에 접속하면 server -> router -> controller로 흐르면서 결국 controller 의 함수를 만나게 된다. 여기서 html을 랜더하고 뚝딱뚝딱 뭔가를 만들면 된..

import express from "express"; import morgan from "morgan"; const PORT = 4000; const app = express(); const logger = morgan("dev"); const handleHome = (req, res) => { return res.send("it is dance with server and client"); }; app.use(logger); app.get("/", handleHome); const handleListening = () => { console.log(`✅ Server listening on port http://localhost:${PORT} 🚀`); }; app.listen(PORT, handleLi..