Express - 라우팅(routing)

chance·2020년 4월 16일
0

express

목록 보기
1/1

이 문서는 다음의 공식 express를 참조하여 만들어졌습니다.
https://expressjs.com/en/guide/routing.html

우선, express로 서버를 세팅하기 위한 기본적인 코드를 작성해보자.

const express = require('express');
const app = express();
const port = 3000; //포트번호 설정

//아래의 예제 코드를 이 부분에 집어넣읍시다.

app.listen(port, () => console.log(`Server listening on port ${port}`)); //node.js의 method. 서버의 커넥션을 하고 listen한다.

라우팅

특정한 URL를 통해 클라이언트의 요청이 들어왔을 때 그에 맞는 적절한 반응을 취해주는 것이다. express에서는 http request가 들어왔을 경우 method type에 따라 라우팅을 해줄 수 있다.

미들웨어

http request가 사용자로부터 날라왔을 때 사용자가 요청하면서 보내는 정보(request)와 서버가 보낼 정보(response)에 접근 가능한 함수이다.

app.use('path', function(req, res)=>{
	do(something);
	next();
});

use method를 사용할 경우 http request이 해당 url로 보내질 경우 method type에 관계없이 반드시 실행된다. next()는 다음에 실행할 method가 있으면 다음으로 넘어가게 해준다.

app.get('path', function(req, res)=>{
	do something here...        
});

http request가 get method의 형태로 호출할 경우에만 실행된다. 이는 put, delete의 경우도 마찬가지라 다음과 같이 함수명만 바꾸면 된다.

app.post('path', function(req, res)=>{
	do something here...        
});

app.delete('path', function(req, res)=>{
	do something here...        
});

use method와 all method의 차이

두 method 모두 get, post, put, delete 가릴 것 없이 http request가 들어오면 처리한다는 공통점이 있다. 그러나 use method는 첫번째 인자로 들어오는 것을 시작 경로로 삼아 매칭하고, all method는 첫번째 인자와 request 경로가 정확히 일치할 때만 매칭한다.

app.use('/a', function(req,res) =>{});

request의 경로가 예를 들어 /a/b/c/... 라면 매칭한다. a로 시작하는 모든 경로에 대하여 routing이 진행된다.

app.all('/a', function(req, res) =>{});

request의 경로가 /a 로 정확히 매칭될 경우에만 함수가 호출된다. app.use에서 매칭되었던 /a/b/c/...는 여기에서 매칭되지 않는다.

profile
프론트엔드와 알고리즘을 주로 다룹니다.

0개의 댓글