일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이터러블
- pushstate
- Lexical environment
- webpack
- relatedTarget
- 유사배열
- 실행 컨택스트
- Call stack
- 함수형
- 자바스크립트
- 호출 스택
- localtunnel
- 로컬터널
- 매클로태스크
- 웹팩
- 로드마크
- 비동기 작업
- fetch 취소
- 번들러
- 이벤트 루프
- 마이크로태스크
- hoisting
- 클론코딩
- debounce
- 렉시컬 환경
- 넘블
- 화살표 함수
- 호이스팅
- AbortController
- JavaScript
- Today
- Total
내가 보려고 만든 개발 공부 일지
ExpressJS의 use 함수 본문
(일단, express 에서 사용되는 함수를 미들웨어 라고 부른다.
--> 요청과 응답 사이의 중간작업을 해준다는 의미)
예제1)
var app = express(); 일때
App.use( A, B, C ) 이런식으로 use 함수를 쓸수있다. (use 안에 인자로 들어가는 함수를 실행하겠다 라는 의미)
여기서 A 에 url 을 적어주면 해당 url 로 요청이 왔을때 B, C 함수가 차례로 불리게되는것이다.
그리고 B 에서 (req, res, next )=>{ next(); } 와 같이 해줘야 C 가 실행된다.
(next()를 해주지 않는다면 요청은 거기서 영원히 멈추게 될것이다.)
만약 use의 인자 함수가 하나일때 next()를 하면 요청 url 에 매칭되는 다음 함수(미들웨어) 가 실행된다
Next 는 관행적으로 짓는 이름이고, 다음 미들웨어를 가리킨다.
그리고 만약 A 가 url 이 아니고 바로 함수라면, 들어오는 모든 요청에 대해 실행하게 된다.
예제2)
Use 인자로 미들웨어가 app.use((req, res, next)=>{~~}) 가 아니라
app.use((err, req, res, next)=>{~~}) 와 같이 맨앞에 err 인자가 하나더 들어가게되면
이 함수는 에러가 발생했을때만 불리게되는 함수가된다 (에러발생시 여기서 처리)
이를 모르고 처음엔 왜 저게 실행 안되나 계속 삽질했었음 ...
Express 미들웨어 참조 : http://expressjs.com/en/guide/writing-middleware.html
'다양한 삽질들' 카테고리의 다른 글
keydown 이벤트 한글 중복 입력 현상 (2) | 2021.12.23 |
---|---|
React hooks 에서 useState setter 함수 작동 순서 (0) | 2021.07.04 |