express 공식 문서
https://expressjs.com/ko/guide/writing-middleware.html
Middleware functions are functions that have access to the request object (
req
), the response object (res
), and thenext
function in the application’s request-response cycle.
미들웨어* 함수는 요청 오브젝트(
req
), 응답 오브젝트 (res
), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수입니다
![]() |
미들웨어 함수가 적용되는 HTTP 메소드. 미들웨어 함수가 적용되는 경로(라우트). 미들웨어 함수. 미들웨어 함수에 대한 콜백 인수(일반적으로 "next"라 불림). 미들웨어 함수에 대한 HTTP 응답 인수(일반적으로 "res"라 불림). 미들웨어 함수에 대한 HTTP 요청 인수(일반적으로 "req"라 불림). |
---|
개요
const requestTime = function(req, res, next) {
req.requestTime = Date.now();
next();
};
app.use(requestTime);
app.get("/", function(req, res) {
let responseText = "Hello World!";
responseText += "Requested at: " + req.requestTime + "";
res.send(responseText);
});
app의 root에 대한 요청이 있을때 requestTime 함수가 먼저 호출된다. 이렇게 중간에 호출되는 함수들을 미들웨어 함수라고 한다.
애플리케이션 레벨 미들웨어
애플리케이션의 요청-응답 주기에 실행된다. app.use() 및 app.METHOD() 함수를 이용한다. 여기서 METHOD는 미들웨어 함수가 처리하는 요청(GET, PUT 또는 POST 등)의 HTTP메소드이다.
const handleHome = (req, res) => res.send("Hello from home");
const betweenHome = (req, res, next) =>{
console.log('between');
next();
};
app.use(betweenHome);
app.get("/", handleHome);
app.use()를 사용한 방식. app.use() 다음에 나오는 모든 요청에 대해 미들웨어 함수를 호출한다.
app.use('/user/:id',betweenHome);
마운트 경로 설정도 가능하다. 여기서는 '/user/:id' 경로에 대한 모든 유형의 HTTP요청에 대해 실행된다.
const betweenHome = (req, res, next) => {
console.log('between');
next();
}
app.get("/", betweenHome, handleHome);
app.listen(4000);
하나의 마운트 경로에 여러개의 미들웨어 함수가 있는 경우도 가능하다. root 경로에 대한 GET 요청에 대해 betweenHome과 handleHome 함수가 차례로 실행된다.
'JavaScript' 카테고리의 다른 글
Pug 설치편 (0) | 2020.02.24 |
---|---|
Middleware part 2. (0) | 2020.02.20 |
Babel (0) | 2020.02.20 |
Express로 서버 만들기 (0) | 2020.02.20 |
<canvas> height와 width 렌더링 왜곡 문제 (0) | 2020.02.19 |
댓글