기술

express미들웨어

cha123 2022. 4. 29. 15:50

미들웨어란?

  • 간단하게 말하면 클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려는 중간(미들)에 목적에 맞게 처리를 하는, 말하자면 거쳐가는 함수들이라고 보면된다.
  • 미들웨어 함수는 req(요청)객체, res(응답)객체, 그리고 어플리케이션 요청-응답 사이클 도중 그 다음의 미들웨어 함수에 대한 엑세스 권한을 갖는 함수이다.
  • 다음 미들웨어 함수에 대한 엑세스는 next함수를 이용해서 다음 미들웨어로 현재 요청을 넘길 수 있다.
  • next를 통해 미들웨어는 순차적으로 처리된다.
  • 요청을 처리하기 전에 중간에 무언갈 해주는 애
//접속로그 남기기
const requestMiddleware = (req:express.Request,
    res:express.Response,
    next:express.NextFunction) => {
    console.log(
    "ip:",
    req.ip,
    "domain:",
    req.rawHeaders[1],
    "method:",
    req.method,
    "Request URL:",
    req.originalUrl,
    "-", new Date());
    next();
    ;
}
오류 미들웨어
//404 error url이 존재 하지 않을 때 사용 미들웨어
app.use((req,res,next)=>{
    console.log('error status 404');
    res.send({error:'Url 404 not found error' })
});