본문 바로가기

Youtube Clone Coding

Middlewares

Middleware는 요청과 응답의 가운데에 (middle) 에 있는 software이다. 사실은 controller은 middleware의 일종이다. 모든것이 전부 다 middleware 였던것임!!!

 

const logger = (req, res, next) => {
  console.log(`${req.method} : ${req.url}`);
  next();
};
app.get("/",logger, home);

위와 같은 미들웨어를 썼을때, next() 함수를 사용하면 다음 함수를 호출하게 된다. 위와 같이 사용하지 않고도 다음 함수를 호출 할 수 있는데, use함수를 사용하는 것이다. get함수에 저렇게 함수를 여러개 나열하는 대신, get함수에는 메인 컨트롤러만 쓰고, app.use(logger); 와 같이 추가해주는 것이다. 

 

브라우저는 logger에게 요청에대한 응답을 물어보고, logger 에서는 return이 없고 next 가 있기 때문에 다음 함수로 책임을 전가한다. 그럼 다음함수에서 return이 나오고 그것이 응답이 되는 것이다. return 이 나오는 함수가 나오기 전까지의 컨트롤러는 전부 다 미들웨어 인 것이다. 

'Youtube Clone Coding' 카테고리의 다른 글

Routers  (0) 2022.10.31
Morgan (middleware)  (0) 2022.10.31
Controllers  (0) 2022.10.30
Server  (0) 2022.10.30
기본적인 Setups  (0) 2022.10.30