머리글
이번 시간에는 Middelware은 무엇인지 알아보자
Middleware?
Middleware란 request와 response 사이에 있는 소프트웨어다.
즉 브라우저가 request를 하고 서버가 response를 하기 전에 이루어지는 무언가를 뜻한다.
우선 Middleware를 하나 생성해 보자.
const testMiddleware = (req, res, next) => {
console.log("middleware");
next();
};
이전에 만들었던 handleHome 함수와 크게 차이가 없어 보인다.
하지만 차이점은 next라는 인수를 받고 있다는 것인데,
이는 다음 함수를 호출하기 위해 사용한다.
예시를 보자.
app.get("/", testMiddleware, hanldeHome);
이런 식으로 미들웨어를 사용할 수 있고,
미들웨어는 console.log를 수행하고 next()를 통해 handleHome을 호출한다.
물론 미들웨어를 더 많이 사용할 수도 있다.
app.get("/", testMiddleware, testMiddleware, hanldeHome);
이러한 예시도 가능하다.
그렇다면 이 미들웨어를 모든 URL에 사용하려면 어떻게 해야 할까?
일일이 추가를 해주어야 할까?
그렇지 않다.
app.use(testMiddleware);
app.get("/", handleHome);
이런 식으로 app.use를 사용하여 전역으로 미들웨어를 사용할 수 있다.
하지만 두 문장의 순서가 바뀌면 "/" 라우터에선 미들웨어가 작동하지 않는다.
순서에 유의하자.
미들웨어를 통해 로그인하지 않은 유저를 특정 콘텐츠에 접근하지 못하게 하는 등의 다양한 기능을 구현할 수 있다.
Morgan?
Morgan은 node.js용 'request logger middleware'이다.
우선 설치부터 해보자.
npm i morgan
그리고 사용을 해보자.
import logger from "morgan";
app.use(logger("dev"));
미들웨어를 설정해 주고, 아무 URL로 이동하게 되면 다음과 같이 동작한다.
이런 식으로 로그를 조금 더 편리하게 확인할 수 있다.
미들웨어를 만드는 방법도 있지만,
이미 존재하는 미들웨어를 굳이 사용하지 않을 이유도 없다.
마무리
이번 시간에는 미들웨어의 역할과 미들웨어를 더 편하게 사용할 수 있는 Morgan에 대해서 알아보았다.
다음 시간에는 라우터에 대해서 알아보자.
'노마드 코더 > 유튜브 클론' 카테고리의 다른 글
[JavaScript, Node.js] 유튜브 클론 정리 4장 (2) - URL 파라미터 (0) | 2023.04.07 |
---|---|
[JavaScript, Node.js] 유튜브 클론 정리 4장 (1) - Router (0) | 2023.04.07 |
[JavaScript, Node.js] 유튜브 클론 정리 3장 (1) - 서버 생성, GET Requests, Responses (0) | 2023.04.06 |
[JavaScript, Node.js] 유튜브 클론 정리 2장 (3) - babel, nodemon (0) | 2023.04.06 |
[JavaScript, Node.js] 유튜브 클론 정리 2장 (2) - dependencies (0) | 2023.04.06 |