평행코드

Middleware란? app.use(), global middleware 본문

Node js

Middleware란? app.use(), global middleware

나의 오류는 누군가 겪었던 오류 2023. 5. 25. 16:06

middleware

컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어이다.

 

const routerLogger = (req, res, next) => {
	next();
};
const methodLogger = (req, res, next) => {
	next();
};
const home = (req, res) => res.send("hello");
app.get("/", routerLogger, methodLogger, home);

1. home으로 request가 오고 express가 methodLogger에게 물어볼것임

 

2. routerLogger야, 여기에 request에 관한 정보가 있고, response하기에 필요한 것도 있어!

response하기 싫으면 next 함수를 호출해!

 

3. methodLogger야, 여기에 request에 관한 정보가 있고, response하기에 필요한 것도 있어!

너가 여기에 응답하고 싶지않고, 다음함수로 넘기고 싶으면, next 함수를 호출해!

 

4. home아, 여기에 request에 관한 정보가 있고, response하기에 필요한 것도 있어!

응답할꺼니? (응)

"hello"라고 답해준다.

 

(다음 함수가 없기 때문에 여기서는 응답을 해주어야만 한다.)

그리고 관습적으로, 응답을 해주는 마지막 controller에는 next를 안쓴다. 그냥 필요가 없음

 

res는 필요가 없다고 하더라고 꼭써준다.

순서랑 몇개가 있는지 중요!

 

더많은 함수를 쓸 수 있지만, 보통 2~3개를 쓴다.

 

request : 입장

middleware : 몇분이세요?

request : 아 일행 먼저 왔어요!

middleware : 저쪽 테이블 맞으세요? next();

home : 오 왔어?

이렇게 응답하기 전까지는 다 미들웨어다

 

함수하나추가?
const routerLogger = (req, res, next) => {
	next();
};
const methodLogger = (req, res, next) => {
	next();
};
const home = (req, res) => res.send("hello");
const login = (req, res) => res.send("login");

app.use(routerLogger, methodLogger);
app.get("/", home);
app.get("/login", login);

login이라는 함수가 필요하다면

app.use라는것을 활용하면된다.

단, 순서가 중요하다.( 위에서 아래로 순서를 지켜주자!)

 

app.use()

global middleware를 만들 수 있게 해주는 함수

global middleware란?

어떤 url을 들어가도 사용하게 되는것을 의미함

모든 route에서 이 함수를 사용하는 것

'Node js' 카테고리의 다른 글

Router란?  (0) 2023.05.26
Morgan middleware  (0) 2023.05.26
GET이란? (req, res)  (0) 2023.05.25
Express란 무엇일까? 그리고 서버란?  (0) 2023.05.25
Express setup  (0) 2023.05.25