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
Writing middleware for use in Express apps
Writing middleware for use in Express apps Overview Middleware functions are functions that have access to the request object (req), the response object (res), and the next function in the application’s request-response cycle. The next function is a func
expressjs.com