Middleware개발/Node.js2024. 10. 23. 11:17
Table of Contents
1. Middleware
- 브라우저가 request하면 서버는 응답을 하는데 그 사이에 있는게 middleware
- middleware는 handler일 수 있고 반대가 될 수도 있음
- handler는 정확히는 controller라고 함
// 기존 controller를 수정
const handleHome = (req, res, next) => {
next();
};
app.get("/", handleHome);
- app.get("/", handleHome, "함수가 없는 상태");
const gossipMiddleware = (req, res, next) => {
console.log("middle");
next();
};
const handleHome = (req, res, next) => {
return res.end();
};
app.get("/", gossipMiddleware, handleHome);
- 브라우저는 루트를 GET하려 하고, express는 gossipMiddleware를 호출하며 로그를 출력
- express는 next()를 보고 다음함수인 handleHome을 호출
- next()를 호출한다는 건 middleware라는 것을 의미하며, controller로 사용하려면 argument에 next를 빼야함
- middleware는 request에 응답하지 않으며, 작업을 다음 함수에게 넘기는 기능을 가짐
2. app.use()
https://expressjs.com/ko/4x/api.html#app.use
- app.use는 global middleware를 만듦
// use가 먼저오고 그다음 url의 get이 와야함
app.use(gossipMiddleware);
app.get("/", handleHome);
3. Morgan
- Node.js용 HTTP request logger middleware
- Morgan 패키지는 Node.js 서버로 구성된 웹 환경에서 HTTP request 로그를 관리하기 위한 Middleware
- 첼린지로 했던 것을 패키지로 더 편하게 구현
//import morgan from "morgan";
const morgan = require("morgan");
app.use(morgan("dev"));
- https://stackblitz.com/edit/wetube-empty-1cqyzw?file=package.json
'개발 > Node.js' 카테고리의 다른 글
Router(1) (0) | 2024.10.24 |
---|---|
Error: Cannot set headers after they are sent to the client (0) | 2024.10.23 |
Express 서버 생성(3) (0) | 2024.10.22 |
Express 서버 생성(2) (0) | 2024.10.22 |
Babel Nodemon (0) | 2024.10.21 |