개발/Node.js2024. 11. 4. 17:35Edit Video

1. 영상이 없을 경우export const watch = async (req, res) => { const { id } = req.params; const video = await Video.findById(id); if (!video) { return res.render("404", { pageTitle: "Video not found!" }); } return res.render("watch", { pageTitle: video.title, video });}; - exec()를 붙인다고 해서 달라지는 건 없고 mongoose에서는 우리가 exec()를 호출하면 promise를 return함   - 우리는 async await을 사용중이므로 상관없으니 삭제 - 하지만 누군가가 없는 v..

개발/Node.js2024. 11. 4. 15:53More Schema, Router 수정

1. More Schema - https://mongoosejs.com/docs/schematypes.html Mongoose v8.8.0: SchemaTypesSchemaTypes handle definition of path defaults, validation, getters, setters, field selection defaults for queries, and other general characteristics for Mongoose document properties. You can think of a Mongoose schema as the configuration object for a Monmongoosejs.com// upload.pugextends baseblock content..

실제 데이터를 입력해보기
개발/Node.js2024. 11. 4. 13:26실제 데이터를 입력해보기

1. Document 만들기 - schema는 video의 구성요소와 데이터 형태를 갖추고 있음 - 유저가 비디오를 업로드할 때 해당 schema의 데이터들을 전송 - 생성일이나 meta 데이터는 자동으로 생성  - 비디오를 생성하려면 document가 필요함 // upload.pugextends baseblock content form(method="POST") input(placeholder="Title", required, type="text", name="title") input(placeholder="Description", required, type="text", name="description") input(placeholder="Hashtags,..

Mongoose
개발/Node.js2024. 11. 1. 11:38Mongoose

1. Mongoose - https://mongoosejs.com/ Mongoose ODM v8.8.0Let's face it, writing MongoDB validation, casting and business logic boilerplate is a drag. That's why we wrote Mongoose. const mongoose = require('mongoose'); mongoose.connect('mongodb://127.0.0.1:27017/test'); const Cat = mongoose.model('Cat', { name:mongoosejs.com - nodejs와 mongodb를 이어주는 가교 2. 설치 - 프로젝트 내 terminal > npm i mongoose  - s..

Pug Mixins
개발/Node.js2024. 10. 30. 16:24Pug Mixins

1. Mixins - 데이터를 받을 수 있으며 스마트 한 partial이 mixin - 기존의 footer.pug은 하단의 고정된 한 조각으로 되었고 데이터를 받을 수 없었음 - 하지만 반복되는 HTML block에서 서로 다른 데이터가 필요한 경우가 있음 - 유튜브를 보면 사이드바, 메인, 인기 동영상 페이지, 각 채널들 등등 - 반복되고 재사용되는 부분들을 최소화 시켜야함 - partial은 단순한 HTML일 뿐이었지만, mixin은 뭔가를 해줘야 함 - https://github.com/Daniel-Jeon/wetube-loaded/commit/0001e632cf4a60a4fb0e6c1f9daee50c86ff0dbd Study Mixins ! · Daniel-Jeon/wetube-loaded@000..

전반적인 Router 구성하기
개발/Node.js2024. 10. 25. 15:40전반적인 Router 구성하기

1. Route Tree - 사용자의 마인드가 되어 웹사이트이 구조를 어떻게 만들지를 구상해야 함 - globalRouter에 login search Router 만들기# Global/ -> Home/join - Join/login -> Login/search -> Search# User/user/:id -> See profile/user/logout -> Log out/user/edit -> Edit my profile/user/delete -> Delete my profile# Videos/videos/:id - > See watch video in my channel/videos/:id/edit -> Edit video/videos/:id/delete -> Delete video/videos/up..

개발/Node.js2024. 10. 24. 16:20Router(2)

1. Router 추가 생성// globalRouter.jsimport express from "express";const globalRouter = express.Router();const handleHome = (req, res) => res.send("Home");const handleJoin = (req, res) => res.send("Join");globalRouter.get("/", handleHome);globalRouter.get("/join", handleJoin);export default globalRouter;// userRouter.jsimport express from "express";const userRouter = express.Router();const handleEdi..

Middleware
개발/Node.js2024. 10. 23. 11:17Middleware

1. Middleware - 브라우저가 request하면 서버는 응답을 하는데 그 사이에 있는게 middleware - middleware는 handler일 수 있고 반대가 될 수도 있음   - handler는 정확히는 controller라고 함// 기존 controller를 수정const handleHome = (req, res, next) => { next();};app.get("/", handleHome); - app.get("/", handleHome, "함수가 없는 상태");const gossipMiddleware = (req, res, next) => { console.log("middle"); next();};const handleHome = (req, res, next) => { r..

image