1. Multer - 파일 업로드를 위한 middleware를 사용 - https://www.npmjs.com/package/multer multerMiddleware for handling `multipart/form-data`.. Latest version: 1.4.5-lts.1, last published: 2 years ago. Start using multer in your project by running `npm i multer`. There are 4721 other projects in the npm registry using multer.www.npmjs.com - 우리 form이 다르게 encode 될 거라는 의미임 - 이 것이 파일을 upload 하기 위한 유일한 조건 - API..

1. Edit Profile - router나 controller쪽은 이제 이해했으므로 제외 - locals를 배웠을때를 떠올려봐야함 - 우리는 saveUninitialized=false로 했기에 session에 변경점이 있어야 cookie가 생성됨 - 현재 계정정보를 변경하려는 상태이기에 우리는 이미 로그인을 한 상태 - localsMiddleware를 통해 locals object에는 로그인한 user 정보가 들어가있음 - 굳이 controller을 통해 로그인한 user 정보를 보낼 필요가 없다는 것 - template에서도 locals를 사용할 수 있음 - locals는 자동적으로 views에 import됨 - 여기서 문제점은 로그인하지 않은 user가 url을 강제로..
1. findByIdAndUpdate Middleware 생성 - 현재 findOneAndUpdate를 위한 middleware은 있는데 findByIdAndUpdate를 위한 middleware가 없음 - findByIdAndUpdate는 findOneAndUpdate을 호출하는데 findOneAndUpdate는 save hook을 호출하지 않음 - findOneAndUpdate에서는 업데이트하려는 문서에 접근할 수가 없음videoSchema.pre("save", async function () { this.hashtags = this.hashtags[0] .split(",") .map((word) => (word.startsWith("#") ? word : `${word}`));}); ..
1. DeprecationWarning - findByIdAndUpdate를 사용하니 DeprecationWarning라는 경고가 발생함 - 경고 메시지에 나온데로 useFindAndModify를 db에 추가하면 됨// db.jsmongoose.connect("mongodb://127.0.0.1:27017/wetube", { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true,}); - mongoose가 오래된 것들을 처리하는 방법이라 시키는데로 하면 됨 2. Middleware를 통한 Hashtag 처리 - 현재는 영상을 업로드하거나 수정할 때, model에 저장하기 전에 hashtag를 처리함 - 하지만 영상을 저장하..
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..

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..