const videos = await Video.find({}).sort({ createdAt: "desc" });
?name=[키워드]
에 들어갈 name 설정req.query
를 console.log하면 { keyword: '리액트' }
이런식으로 데이터가 찍히는것을 확인//2. 방법 - videos 에 빈 array를 만들고 .. keyword가 있다면 videos array는 업데이트 된다.
//- 여기까지는 title이 keyword와 완전히 일치해야 결과가 나올 것이다.
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 });
};
4.-1
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 });
// if문을 타려면 있어야 하고 또 videos 변수를 읽으려면 해당 버블 안에서만 저장이 되어있다.
}
return res.render("search", { pageTitle: "Search" });
};
export const search = async (req, res) => {
const { keyword } = req.query;
let videos = [];
if (keyword) {
videos = await Video.find({
title: {
$regex: new RegExp(keyword, "i"), //ignore case
$regex: new RegExp(`^${keyword}`, "i"), //start with keyword and ignore case
$regex: new RegExp(`${keyword}$`, "i"), //end with keyword and ignore case
},
});
}
console.log(videos);
return res.render("search", { pageTitle: "Search", videos });
};