인프런 커뮤니티 질문&답변

niobbam님의 프로필 이미지
niobbam

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

express 미들웨어 이해하기

next()가 없는 (불필요한) 경우에도, middleware 함수라고 볼 수 있나요??

작성

·

304

3

안녕하세요~ 좋은 강의 넘 잘 듣고 있습니다~ 감사합니다 :)
이 에러 핸들링을 하는 함수를 middleware라고 언급해주셨는데, 저는 조금 헷갈려서 질문 드립니다!
 
app.use((req: express.Request, res: express.Response, next: express.NextFunction) => {
  console.log('this is error middleware');
  res.send({ error: '404 not found error' });
});
 
 
미들웨어는 하려는 일의 중간에서, 개발자가 원하는 무언가를 할 수 있도록 하는 것을 말하는거니까 express 에서는 next() 가 있는 경우를 middleware 로 본다 는 것으로 이해했습니다.
 
그런데 위 코드는 다음으로 넘기는 것 없이 바로 404를 반환해서, next가 꼭 필요하지 않은 것 같은데... 이 경우에도 이 함수를 middleware 함수라고 볼 수 있나요~?

답변 2

1

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요!

네 정확히 이해하셨습니다 :)

미들웨어는 express 소프트웨어 코드 관점에서는 next( )가 존재하는 라우터라고 정의할 수 있고 논리적 관점에서 중앙에서 공통된 기능을 묶어 수행하거나 특수 기능을 수행하는 장치 및 함수라고 정의할 수 있습니다.

엄밀하게 말하면 말씀해주신 것처럼 해당 라우터는 미들웨어가 아니라 끝자락에 있는 에러처리 라우터라고 할 수 있습니다!

제가 미들웨어라 언급한 것은 일반적인 라우터가 아님을 그룹화하여 강조 설명하기 위해 언급했습니다.

현재 이해하신 것이 맞습니다!

좋은 질문 감사합니다. :)

0

niobbam님의 프로필 이미지
niobbam
질문자

아~ 이해했습니다~ 빠르고 자세한 답변 넘 감사합니다~ :)

niobbam님의 프로필 이미지
niobbam

작성한 질문수

질문하기