Express : 자체적으로 최소한의 기능을 갖춘 라우팅 및 미들웨어 웹 Framework
Express 내에 있는 미들웨어 함수는 요청(Request), 응답(Response), 다음의 미들웨어 접근에 대한 권한(next)을 갖는다.
미들웨어는 요청과 응답을 조작하여 기능을 추가하기도 하고, 나쁜 요청을 걸러내기도 한다.
출처: https://inpa.tistory.com/entry/EXPRESS-📚-미들웨어-💯-이해-정리 [👨💻 Dev Scroll:티스토리]
미들웨어 함수의 진행 과정
- 요청 및 응답에 대한 동작
- 요청-응답 주기 종료
- 다음 미들웨어 호출
Express 내의 미들웨어 유형
- 애플리케이션 레벨 미들웨어 (내가 원하는 경로를 연결할 수 있다.)
- 라우터 레벨 미들웨어 (내가 원하는 경로를 연결할 수 있다.)
- 오류 처리 미들웨어
- 기본 제공 미들웨어
- 써드파티 미들웨어
애플리케이션 레벨 미들웨어
- app.use() 와 app.method(GET,POST 등등)() 함수를 이용해서 요청(Request, Response) 처리를 해주는 HTTP 메소드이다.
라우터 레벨 미들웨어
- 사실상 애플리케이션 레벨 미들웨어와 크게 다르지 않다. express.Router() 인스턴스에 바인드(구체적인 값을 할당)해준다는 점을 제외하면 위의 미들웨어와 다르지 않다. router.method(GET, POST 등등)()으로 애플리케이션 레벨 미들웨어와 같이 동작한다.
- 그렇다면 거의 같은데 왜 쓰느냐? app.use()인 경우 지정한 경로가 같으면 그것을 모두 적용시켜버린다. app.use()이라면 들어오는 모든 요청에 대한 처리를 진행한다. 하지만 이 라우터 미들웨어를 사용하면 특정 url을 기점으로 기능이나 로직을 나누어서 관리할 수 있다. /aaa나 /bbb 로 들어오는 url을 기준으로 /aaa/1234와 /bbb/1234의 동작을 다르게 해줄 수 있다는 점이다.
참고 글 :
https://expressjs.com/ko/guide/using-middleware.html
'back-front end' 카테고리의 다른 글
[항해99] Node.js 심화 주차 키워드 (0) | 2022.08.11 |
---|---|
[항해99] require() (0) | 2022.07.30 |
[항해99] ORM (0) | 2022.07.30 |
[항해 99] Javascript의 특성 (0) | 2022.07.18 |
세션, JWT토큰 - 쿠키 (까먹을 때 보면 좋은 글) (0) | 2022.07.15 |
댓글