내가 보려고 만든 개발 공부 일지

ExpressJS의 use 함수 본문

다양한 삽질들

ExpressJS의 use 함수

kwangsunny 2021. 7. 2. 01:16

(일단, 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

 

Comments