Showing
4 changed files
with
22 additions
and
2 deletions
1 | +/* eslint-disable no-console */ | ||
1 | import routes from "../routes"; | 2 | import routes from "../routes"; |
2 | import Video from "../models/Video"; | 3 | import Video from "../models/Video"; |
3 | 4 | ||
... | @@ -15,10 +16,18 @@ export const home = async (req, res) => { | ... | @@ -15,10 +16,18 @@ export const home = async (req, res) => { |
15 | } | 16 | } |
16 | }; | 17 | }; |
17 | 18 | ||
18 | -export const search = (req, res) => { | 19 | +export const search = async (req, res) => { |
19 | const { | 20 | const { |
20 | query: { term: searchingBy }, | 21 | query: { term: searchingBy }, |
21 | } = req; // == const searchingBy = req.query.term; | 22 | } = req; // == const searchingBy = req.query.term; |
23 | + let videos = []; | ||
24 | + try { | ||
25 | + videos = await Video.find({ | ||
26 | + title: { $regex: searchingBy, $options: "i" }, // i를 옵션으로 추가하면 insensitive.. 대소문자 구분 안함. | ||
27 | + }); | ||
28 | + } catch (error) { | ||
29 | + console.log(error); | ||
30 | + } | ||
22 | res.render("search", { pageTitle: "Search", searchingBy, videos }); | 31 | res.render("search", { pageTitle: "Search", searchingBy, videos }); |
23 | }; | 32 | }; |
24 | 33 | ... | ... |
1 | +/* eslint-disable no-console */ | ||
1 | import mongoose from "mongoose"; | 2 | import mongoose from "mongoose"; |
2 | import dotenv from "dotenv"; | 3 | import dotenv from "dotenv"; |
4 | + | ||
3 | dotenv.config(); | 5 | dotenv.config(); |
4 | 6 | ||
5 | mongoose.connect(process.env.MONGO_URL, { | 7 | mongoose.connect(process.env.MONGO_URL, { |
... | @@ -15,5 +17,5 @@ const handleOpen = () => { | ... | @@ -15,5 +17,5 @@ const handleOpen = () => { |
15 | const handleError = (error) => | 17 | const handleError = (error) => |
16 | console.log(`🔴 Error on DB Connection: ${error}`); | 18 | console.log(`🔴 Error on DB Connection: ${error}`); |
17 | 19 | ||
18 | -db.once("open", handleOpen); //connection을 열고 성공여부를 확인할 수 있는 function을 만들 것이다. | 20 | +db.once("open", handleOpen); // connection을 열고 성공여부를 확인할 수 있는 function을 만들 것이다. |
19 | db.on("error", handleError); | 21 | db.on("error", handleError); | ... | ... |
... | @@ -5,9 +5,13 @@ block content | ... | @@ -5,9 +5,13 @@ block content |
5 | .search__header | 5 | .search__header |
6 | h3 Searching for: #{searchingBy} | 6 | h3 Searching for: #{searchingBy} |
7 | .search__videos | 7 | .search__videos |
8 | + if videos.length === 0 | ||
9 | + h5 No Videos Found | ||
8 | each item in videos | 10 | each item in videos |
9 | +videoBlock({ | 11 | +videoBlock({ |
10 | title : item.title, | 12 | title : item.title, |
11 | views: item.views, | 13 | views: item.views, |
12 | videoFile:item.videoFile | 14 | videoFile:item.videoFile |
15 | + videoFile:item.videoFile, | ||
16 | + id: item.id | ||
13 | }) | 17 | }) |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -8,3 +8,8 @@ block content | ... | @@ -8,3 +8,8 @@ block content |
8 | h5.video__title=video.title | 8 | h5.video__title=video.title |
9 | span.video__views=video.views | 9 | span.video__views=video.views |
10 | p.video__description=video.description | 10 | p.video__description=video.description |
11 | + .video__comment | ||
12 | + if video.comments.length === 1 | ||
13 | + span.video__comment-number 1 comment | ||
14 | + else | ||
15 | + span.video__comment-number #{video.comments.length} comments | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment