Showing
6 changed files
with
27 additions
and
7 deletions
| ... | @@ -115,4 +115,5 @@ dist | ... | @@ -115,4 +115,5 @@ dist |
| 115 | .yarn/build-state.yml | 115 | .yarn/build-state.yml |
| 116 | .pnp.* | 116 | .pnp.* |
| 117 | 117 | ||
| 118 | -package-lock.json | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 118 | +package-lock.json | ||
| 119 | +uploads | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -13,6 +13,7 @@ const app = express(); | ... | @@ -13,6 +13,7 @@ const app = express(); |
| 13 | 13 | ||
| 14 | app.use(helmet()); | 14 | app.use(helmet()); |
| 15 | app.set("view engine", "pug"); | 15 | app.set("view engine", "pug"); |
| 16 | +app.use("/uploads", express.static("uploads")); | ||
| 16 | app.use(cookieParser()); | 17 | app.use(cookieParser()); |
| 17 | app.use(bodyParser.json()); | 18 | app.use(bodyParser.json()); |
| 18 | app.use(bodyParser.urlencoded({ extended: true })); //json, html, text, urlencoded 할 거 없이 다 parser할 수 있도록 설정해줘야 한다. | 19 | app.use(bodyParser.urlencoded({ extended: true })); //json, html, text, urlencoded 할 거 없이 다 parser할 수 있도록 설정해줘야 한다. | ... | ... |
| ... | @@ -8,7 +8,7 @@ import Video from "../models/Video"; | ... | @@ -8,7 +8,7 @@ import Video from "../models/Video"; |
| 8 | export const home = async(req, res) => { | 8 | export const home = async(req, res) => { |
| 9 | try { | 9 | try { |
| 10 | const videos = await Video.find({}); //모든 비디오를 가져온다. | 10 | const videos = await Video.find({}); //모든 비디오를 가져온다. |
| 11 | - res.render("home", { pageTitle: "Home", videos }); | 11 | + res.render("home", { pageTitle: "Home", videos }); //render DB에 저장된 video의 내용을 보여준다 |
| 12 | } catch (error) { | 12 | } catch (error) { |
| 13 | console.log(error); | 13 | console.log(error); |
| 14 | res.render("home", { pageTitle: "Home", videos: [] }); | 14 | res.render("home", { pageTitle: "Home", videos: [] }); |
| ... | @@ -44,8 +44,20 @@ export const postUpload = async(req, res) => { | ... | @@ -44,8 +44,20 @@ export const postUpload = async(req, res) => { |
| 44 | //id는 mongoDB가 랜덤하게 만들어준다. | 44 | //id는 mongoDB가 랜덤하게 만들어준다. |
| 45 | }; | 45 | }; |
| 46 | 46 | ||
| 47 | -export const videoDetail = (req, res) => | 47 | +export const videoDetail = async(req, res) => { |
| 48 | - res.render("videoDetail", { pageTitle: "Video Detail" }); | 48 | + //console.log(req.params); params에 id가 있다는걸 알게 됨 |
| 49 | + const { | ||
| 50 | + params: { id }, | ||
| 51 | + } = req; | ||
| 52 | + try { | ||
| 53 | + const video = await Video.findById(id); | ||
| 54 | + //console.log(video); | ||
| 55 | + res.render("videoDetail", { pageTitle: "Video Detail", video }); | ||
| 56 | + } catch (error) { | ||
| 57 | + //console.log(error); | ||
| 58 | + res.redirect(routes.home); | ||
| 59 | + } | ||
| 60 | +}; | ||
| 49 | export const editVideo = (req, res) => | 61 | export const editVideo = (req, res) => |
| 50 | res.render("editVideo", { pageTitle: "Edit Video" }); | 62 | res.render("editVideo", { pageTitle: "Edit Video" }); |
| 51 | export const deleteVideo = (req, res) => | 63 | export const deleteVideo = (req, res) => | ... | ... |
| 1 | import multer from "multer"; | 1 | import multer from "multer"; |
| 2 | import routes from "./routes"; | 2 | import routes from "./routes"; |
| 3 | 3 | ||
| 4 | -const multerVideo = multer({ dest: "videos/" }); | 4 | +const multerVideo = multer({ dest: "uploads/videos/" }); |
| 5 | 5 | ||
| 6 | export const localsMiddleware = (req, res, next) => { | 6 | export const localsMiddleware = (req, res, next) => { |
| 7 | res.locals.siteName = "my Youtube"; | 7 | res.locals.siteName = "my Youtube"; | ... | ... |
| ... | @@ -8,5 +8,5 @@ block content | ... | @@ -8,5 +8,5 @@ block content |
| 8 | id: item.id, | 8 | id: item.id, |
| 9 | title : item.title, | 9 | title : item.title, |
| 10 | views: item.views, | 10 | views: item.views, |
| 11 | - videoFile:item.videoFile | 11 | + videoFile:item.fileUrl |
| 12 | }) | 12 | }) |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | extends layouts/main | 1 | extends layouts/main |
| 2 | 2 | ||
| 3 | block content | 3 | block content |
| 4 | - p Hello This is videoDetail | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 4 | + .video__player | ||
| 5 | + video(src=`/${video.fileUrl}`) | ||
| 6 | + .video__info | ||
| 7 | + a(href=routes.editVideo) Edit video | ||
| 8 | + h5.video__title=video.title | ||
| 9 | + span.video__views=video.views | ||
| 10 | + p.video__description=video.desription | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment