[wetube]3.12

📃 결과물

비디오 search 가능

📃 목표

  • url의 query로부터 값을 가져와서 검색.
  • regular expression을 사용하여 해당값이 들어간 데이터를 검색.

📃 과정

Searching Videos

  1. 검색을 위한 form. get 할때 term 으로 넘겨준다.
    'up'이라는 단어가 들어간 제목의 데이터를 검색 해보겠다.
.header_column
        form(action=routes.search, method="get")
            input(type="text", placeholder="Search by term...",name="term")

2.url 주소 가져오기
term 에 해당하는 값을 request로 부터 가져온다 . req.query.term 과 같은 코드. form 에 입력한 값이 searchingBy 값이 된다.

 const {
    query: { term: searchingBy },
  } = req;
console.log(searchingBy);

+이렇게 해주면 rating 값을 이용해서 해당 별점 이상 값만 검색할 수도 있다.

const {
    query: { rating: searchingBy }
  } = req;

  1. video 는 검색된 searchingBy 값이 들어간 video 를 다시 받아오기 위해서 let 으로 선언.
    $regex:searchingBy :searchinBy가 포함된 데이터를 가져온다.
    $oprions:"i" : 대/소문자 구별하지 않음
export const search = async (req, res) => {
  const {
    query: { term: searchingBy },
  } = req;
  let videos = [];
  try {
    videos = await Video.find({
      title: { $regex: searchingBy, $options: "i" },
    });
  } catch (error) {
    console.log(error);
  }
  res.render("search", { pageTitle: "Search", searchingBy, videos });
};

📃 참고

https://expressjs.com/ko/api.html
https://fors.tistory.com/403 쿼리 옵션

좋은 웹페이지 즐겨찾기