-
[NOMAD CODERS_Wetube] Search controllerTodayILearned/Wetube 2020. 7. 28. 00:43
결과물
메인 내 input 박스를 통해 search 화면으로 이동
목적
- 메인 화면에 search박스를 만든다.
- 해당 박스의 입력값과 함께 search 화면으로 이동!
- Search 화면의 로직을 구성한다.
- Home화면에서 검색한 결과를 Search주소 밑 하위 주소로 넘어가도록 한다.
코드
header.pug
header.header .header__column a(href=routes.home) i.fab.fa-youtube .header__colunm form(action=routes.search, method="get") input(type="text", placeholder="Search by term...", name="term") .header__colunm ul li a(href=routes.join) Join li a(href=routes.login) Log In
videoController.js
export const home = (req, res) => res.render("home", { pageTitle: "home" }); export const videos = (req, res) => res.render("videos", { pageTitle: "videos" }); export const upload = (req, res) => res.render("upload", { pageTitle: "upload" }); export const videoDetail = (req, res) => res.render("ViedoDetail", { pageTitle: "video Detail" }); export const deleteVideo = (req, res) => res.render("Delete Video", { pageTitle: "delete Video" }); export const search = (req, res) => { const { query: { term: searchingBy }, } = req; res.render("SEARCH", { pageTitle: "search", searchingBy }); }; export const editVideo = (req, res) => res.render("editVideo", { pageTitle: "edit video" });
배운점
form 태그, action 과 get 메소드( in HTML )
form태그는 로그인, 검색, 회원가입 등 유저가 입력하는 부분에 많이 쓰이는 태그이다.
.header__colunm form(action=routes.search, method="get") input(type="text", placeholder="Search by term...", name="term")
Wetube의 검색창도 form태그로 이루어졌다.
form 속성을 이용하여 입력값을 어디로, 어떻게 보낼지 정한다.
action 속성, get 메소드
action속성은 서버 내의 스크립트 파일을 지정하여 주어진 입력값을 처리 할 경로를 지정하는 역할을 한다.
따라서 위의 코드에서, 주어진값을 처리할 경로는 search 이다.(이전 강의에서 모든 경로를 routes파일에 입력했다.)
method 속성은 입력값을 어떠한 방식으로 처리할 지 정한다. get 과 post가 있다.
get방식은 웹서버에서 받은 입력값을 브라우저에 그대로 송출하여 url에 노출시킨다.
post방식은 웹서버에서 받은 입력값을 송출하지않고 내부적으로 보이지않게 한다.
그래서 개인정보 등 보안에 민감한 정보들은 post방식을 사용한다.
(참고: https://www.w3schools.com/tags/ref_httpmethods.asp)
(인용: http://www.nextree.co.kr/p8428/)
query string
에디터에 사전 기능도 있었으면 좋겠다. 사용자가 화면에 입력한 값을 송출해주는 역할을 한다.
입력값은 URL으로 송출된다.
Ex)
www.tuigun.com/search?term=사용자가+입력한_값
쿼리스트링은 네이버, 구글 등의 유명 사이트에서도 쉽게 볼 수 있다.
네이버에서 많이 본 그것 구글에서 눈에 띄지 않았던 이유는 쿼리스트링 뒤 다른 정보들이 많았기 때문.. 구글도 있다. ECMAScript 버전에서의 query string 작성법과 ES6에서의 작성법의 차이
왜 ES6의 방법이 정보를 가져오는 관점에서 더 좋은 방식인지?
> 다음 포스트에서 작성 할 것
'TodayILearned > Wetube' 카테고리의 다른 글
[Wetube] DB.js를 이용하여 HOME화면에 동영상 리스트 보여주기 (0) 2020.08.23 [Wetube] VIEW_JOIN/LOGIN 화면 구성 / partial (0) 2020.08.19 [NOMAD CODERS_Wetube] View with PUG 2 (0) 2020.07.15 [NOMAD CODERS_Wetube] View with PUG (0) 2020.07.14 [NOMAD CODERS_Wetube] MVC Pattern (0) 2020.07.08 - 메인 화면에 search박스를 만든다.