페이지 라우팅
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뷰를 렌더링하면서id와name값을 전달함.
- 이 값들은
write.jade템플릿에서 사용할 수 있음
→
write.jade로 렌더링하면서, HTML Form의 id와 name 값을 넘겨주어 출력하게 됨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의 약자로, 데이터 전송 방식 중 하나