[TIL] 미들웨어 (Middleware)

VonBielefeld·2023년 11월 8일
0

TIL

목록 보기
12/32

미들웨어 (Middleware)

Express is a routing and middleware web framework that has minimal functionality of its own: An Express application is essentially a series of middleware function calls.

미들웨어 함수는 요청 오브젝트(req), 응답 오브젝트 (res)에서 중간 역할을 하는 함수입니다.

미들웨어 함수에서는 next함수를 통해 다음 미들웨어로 요청을 넘길 수 있다.
따라서 호출 순서가 큰 영향을 준다.

역할

  • Application-level middleware
app.use('/user/:id', function(req, res, next) {
  console.log('Request URL:', req.originalUrl);
  next();
}, function (req, res, next) {
  console.log('Request Type:', req.method);
  next();
});

app.get(), app.post()등과 달리 요청 URL을 지정하지 않아도 app.use()를 사용할 수 있으며 해당 경우에는 URL에 상관없이 매번 실행된다.

  • Router-level middleware
app.use("/api", testRouter);

라우터 연결 하는 역할

  • Error-handling middleware
app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

서비스 중간에 오류를 관리 할 수 있다.

  • Built-in middleware
express.static(root, [options])
특성설명유형기본값
dotfilesdotfile을 제공하기 위한 옵션입니다. 사용 가능한 값은 “allow”, “deny” 및 “ignore”입니다.문자열“ignore”
etagetag의 생성을 사용 또는 사용 안함으로 설정합니다.부울true
extensions파일 확장자 폴백을 설정합니다.배열[ ]
index디렉토리 인덱스 파일을 전송합니다. 디렉토리 인덱스 작성을 사용하지 않으려면 false를 설정하십시오.혼합“index.html”
lastModifiedOS에서 해당 파일이 마지막으로 수정된 날짜를 Last-Modified 헤더에 설정합니다.부울true
사용 가능한 값은 true 또는 false입니다.
maxAge밀리초 또는 ms 형식의 문자열로 Cache-Control 헤더의 max-age 특성을 설정합니다.숫자0
redirect경로 이름이 디렉토리인 경우 후미부의 “/”로 경로를 재지정합니다.부울true
setHeaders파일을 제공하도록 HTTP 헤더를 설정하기 위한 함수입니다.함수-
  • Third-party middleware
app.use(cookieParser());

npm을 통해 추가 설치된 모듈을 앱에 로드해주는 역할을 한다.


참고

0개의 댓글