YoonC

[Node.js] Express 라우팅, 라우팅 메소드 본문

Develop/Node.js

[Node.js] Express 라우팅, 라우팅 메소드

윤태풍 2021. 3. 26. 18:14

9장 스스로해보기 하다가 못하겠어서 그냥 개념 정리하고싶은데 정리해버리기..ㅎ😩💁🏻

 

💡 라우팅 : URI 및 특정 HTTP 요청 메소드의 클라이언트 요청에 응답하는 방법 결정

                   각 라우트는 하나 이상의 핸들러 함수를 가질 수 있고 라우트가 일치할때 실행

 

 

👉🏻 요청 객체 (Request)

 

   - 일반적으로 req 의 변수로 명명 마음대로 지어도 O ( 콜백에 전달되는것이므로 )

   - Method
       req.params : 이름이 붙은 라우트 파라미터를 받음 

                                ex) app.get(’/:idx’, (req, res) => { res.send(req.params.idx); })

       req.query : GET 방식으로 넘어오는 쿼리 스트링 파라미터 담음

       req.body : POST 방식으로 넘어오는 파라미터 담음 HTTP의 BODY 부분에 담김 

       req.route : 현재 라우트에 관한 정보

       req.headers : HTTP의 Header 정보를 가짐

       req.path : 클라이언트가 요청한 순수 요청 경로

       req.accepts([types]) : 클라이언트가 해당하는 타입을 받을 수 있는지 확인하는 메서드

       req.url : URL 경로와 쿼리 스트링을 반환

 

 📖 책에서 많이 본 것들!! ⭐️⭐️⭐️

  👀 req.on (event(string), listener) 해당 메소드는 request instance에 ‘data’이벤트의 이벤트 핸들러(listener)를 bind

         => (159p) 직접 이벤트를 req.on을 이용해 만들어줄 수 있고 (새로운이벤트 , 내가정의할 이벤트)를 bind 해주는것

               원래있는 이벤트에 이벤트 핸들러를 bind 해 줄 수도 있음 (data, end, error)의 경우

               원래 있는 이벤트를 알고 싶다면 nodejs.org/api/stream.html 여기서 보자

 

  👀 req.method는 해당 request HTTP method 반환

 

   

👉🏻 응답 객체 (Response)

 

   - 요청 객체와 마찬가지 보통 res를 변수로 사용  

   - Method

       res.status(code) : HTTP 응답 코드를 설정

       res.send(body), res.send(status, body) : 클라이언트에 응답을 보냄

       res.json((status), json) : 클라이언트로 JSON 값 보냄

       res.locals : 뷰를 렌더링하는 기본 콘텍스트를 포함하는 객체

       res.render(view, [locals], callback) :  jade와 같은 템플릿 엔진을 써서 뷰를 렌더링

       res.end() : 안써도 되는데 보내줄 데이터가 없을때 사용함

       res.redirect() : 요청 경로를 재지정함

 

 

라우트의 구조

 :  app.get/post ( PATH(경로), HANDLER) - GET, POST 방식의 method

    이때 app은 express 객체이며 METHOD에는 HTTP 요청 메소드로 GET, POST 방식이 있음

    PATH 해당하는 프로젝트 서버 경로, HANDLER 라우트가 일치할때 발생하는 함수

 

'Develop > Node.js' 카테고리의 다른 글

REST? RESTful API??  (0) 2021.03.26
[Nodejs 교과서] 몽고디비  (3) 2021.03.18
[Nodejs 교과서] 시퀄라이즈  (0) 2021.03.18
[Nodejs 교과서] MySQL  (0) 2021.03.17
[Nodejs] MySQL 뚞딲🔨  (0) 2021.03.17
Comments