Web Development/NodeJS

06. express.js Middleware

tongnamuu 2020. 3. 19. 17:48

이번엔 미들웨어에 대해 알아보자

서버에 필요한 기능들을 익스프레스 인스턴스(어플리케이션)에 추가하는 것이다.

helmet, cooieParser, bodyPerser, morgan 등이 있고 그 외에도 Custom Middleware를 작성할 수도 있다. 

middleware를 추가할 때는 app.use()를 사용한다.

 

index.js를 위와 같이 바꿔주고 실행시킨 후 cmd창에서

curl -X GET "localhost:3000"

를 실행시켜주면 index.js를 실행시킨 쪽에서 아래와 같이 나오게 된다.

Custom logging Middleware가 찍혀나오게 된다. middleware에는 req, res, next를 인자로 가지며 next를 실행시켜야 다음 함수로 넘어가게 되는 것이다. 다른 함수를 더 만들어서 테스트해보자.

curl -X GET "localhost:3000"

를 실행시키면 

이렇게 된다. 이때 첫번째의 next를 삭제해보자.

이 때 쿼리를 실행해주면 첫 middleware만 실행되는 것을 볼 수 있다. 그리고 쿼리를 넣어준 cmd쪽에서는 응답을 받지못한 채 대기상태에 놓여있다. 즉 next를 꼭 넣어주자.

이제는 npmjs에서 제공해주는 middleware를 설치해보자

여기서는 morgan을 설치해보겠다.

npm install morgan

https://www.npmjs.com/package/morgan

 

morgan

HTTP request logger middleware for node.js

www.npmjs.com

를 살펴보면 morgan을 사용할 때 옵션을 줄 수 있다.

https://www.npmjs.com/package/morgan#predefined-formats여기서는 dev option을 주겠다.

 

morgan

HTTP request logger middleware for node.js

www.npmjs.com

직접 만든 middleware코드를 삭제하고 수정하자.

이 때 쿼리를 실행해주면 아래와 같이 로그가 찍히게 된다.

다음에는 에러 미들웨어에 대해 알아보겠다.