a(href=`${video.id}/delete`) Delete Video →
videoRouter.route("/:id([0-9a-f]{24})/delete").get(deleteVideo);
export const deleteVideo = async (req, res) => {
const { id } = req.params;
await Video.findByIdAndDelete(id);
return res.redirect("/");
};
const videos = await Video.find({}).sort({ createdAt: "desc" });
export const search = (req, res) => {
return res.render("search", { pageTitle: "Search" });
};
================================
extends base.pug
block content
form(method="GET")
input(placeholder="Search by title", name="keyword", type="text")
input(type="submit", value="Search now")
export const search = async (req, res) => {
const { keyword } = req.query;
if (keyword) {
const videos = await Video.find({
title: keyword,
});
return res.render("search", { pageTitle: "Search", videos });
}
return res.render("search", { pageTitle: "Search" });
};
-----------------아니면--- let으로 --------------
export const search = async (req, res) => {
const { keyword } = req.query;
let videos = [];
if (keyword) {
videos = await Video.find({
title: keyword,
});
}
return res.render("search", { pageTitle: "Search", videos });
};
include mixins/video
each video in videos
+video(video)
if (keyword) {
videos = await Video.find({
title: {
$regex: new RegExp(`${keyword}$`, "i"),
},
});
}
ch7.5~ login, sessions&cookies, logged in user (0) | 2022.08.23 |
---|---|
ch7. User authentication (0) | 2022.08.23 |
ch6.19~ edit video & Middlewares (0) | 2022.08.19 |
ch6.14~ creating video, exception & validation (0) | 2022.08.18 |
ch6.8~ mongo (0) | 2022.08.17 |
댓글 영역