개발로그필름
[WEB] middleware 본문
728x90
반응형
SMALL
middleware는 middle + software의 합성어로 중간에 있는 소프트웨어이다
앞서 request, response 두 개의 argument를 살펴보았는데 next argumnet가 하나 더 있다
next argument는 다음 함수를 호출해준다
만약 함수가 next 함수를 호출한다면 이 함수는 middleware라는 것을 알 수 있다
middleware는 사람들이 웹사이트의 어디를 갈지 알려준다
app.use()는 global middleware를 만들 수 있게 해준다
순서가 중요한데 middleware의 use가 먼저 온 뒤 URL의 get이 와야 한다
const logger = (req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
}
const privateMiddleware = (req, res, next) => {
const url = req.url;
if(url === "/protected") {
return res.send("<h1>Not Allowed</h1>");
}
console.log("Allowed, you may continue.")
next();
}
const handleHome = (req, res) => {
return res.send("I love middlewares.");
};
const handleProtected = (req, res) => {
return res.send("Welcome to the private lounge.");
}
app.use(logger);
app.use(privateMiddleware);
app.get("/", handleHome);
app.get("/protected", handleProtected);
두 개의 middleware를 작성해보았는데 logger middleware는 application 전체에서 사용되고 있고
method와 url을 console.log 해주는 역할을 한다
privateMiddleware는 url 정보를 받아 /protected와 같은 것을 확인하면 중간에 개입해 다음 함수 호출을 막고 url이 /protected가 아니라면 다음 함수를 호출하는 middleware이다
여기서 중요한 점은 middleware가 next() 함수를 호출하지 않을 시 handleProtected와 handleHome 같은 다음 함수들은 절대로 실행되지 않는다
반응형
LIST
'WEB' 카테고리의 다른 글
[WEB] Pug (0) | 2022.07.24 |
---|---|
[WEB] Router (0) | 2022.07.23 |
[WEB] Request, Response (0) | 2022.07.14 |
[WEB] express (0) | 2022.07.13 |
[WEB] babel 실행, Nodemon (0) | 2022.07.12 |
Comments