페이지 라우팅

Category
스터디노트 Express
Status
Published
Tags
routing
express
Description
Published
Slug

페이지 라우팅

Express에서 라우팅은 클라이언트의 요청 URL과 서버에서 제공할 뷰를 매칭시키는 과정임.
→ 특정한 URL에 대해 특정한 뷰를 연결하는 역할.
(라우팅에 사용되는 정보는 호스트 이름을 제외한 URL 경로)
 
다음과 같은 URL로 접근하면 라우팅 대상은 /hello
<http://localhost:3000/hello>
 

Express 라우팅 기본 구조

1. GET 요청 라우팅

app.get('/', function(req, res) { res.render('index.jade'); });
  • app.get: GET 방식으로 들어오는 요청을 설정.
    • 첫 번째 인자는 경로('/'), 두 번째 인자는 요청이 들어왔을 때 실행될 콜백 함수
       
  • 콜백 함수의 매개변수:
    • req: 요청 객체로 클라이언트에서 보낸 정보가 담김
    • res: 응답 객체로 클라이언트에 응답하기 위한 메서드를 제공함
  • res.render('index.jade'): index.jade 뷰를 렌더링하여 클라이언트에게 응답함.
    • 여기서 jade는 템플릿 엔진
→ 루트 페이지(/)로 접속했을 때 index.jade 페이지를 보여준다
 

2. POST 요청 라우팅

app.post('/post', function(req, res) { res.render('write.jade', { id: req.body.id, name: req.body.name }); });
  • app.post: POST 방식으로 들어오는 요청을 설정 /post 경로에 대한 요청을 처리
  • req.body: 클라이언트에서 HTML Form으로 제출한 데이터를 읽어옴
  • 렌더링: write.jade 뷰를 렌더링하면서 idname 값을 전달함.
  • 이 값들은 write.jade 템플릿에서 사용할 수 있음
write.jade로 렌더링하면서, HTML Form의 idname 값을 넘겨주어 출력하게 됨
 

3. 동적 라우팅

app.get('/hello/:id', function(req, res) { var id = req.params.id; // ... });
  • 동적 라우팅: URL의 일부를 변수로 사용하여 동적으로 처리할 수 있음.
    • :id는 URL의 경로 매개변수임
  • req.params.id: /hello/world와 같은 요청이 들어오면, req.params.id에는 'world'라는 문자열이 들어가고, 이를 통해 URL을 통해 값을 전달할 수 있음.
 

REST 방식 및 Method Override

  • Method Override: method-override 미들웨어를 설정하면
  • GET, POST 외에도 PUT, DELETE 등의 RESTful 방식으로 요청을 처리할 수 있음.
  • REST는 Representational State Transfer의 약자로, 데이터 전송 방식 중 하나