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

wonjinYi님의 프로필 이미지
wonjinYi

작성한 질문수

Express 튜토리얼 : 웹 서비스를 위한 핵심 API

미들웨어란?

myLogger 미들웨어가 작동하지 않는 경로가 있습니다.

작성

·

306

0

강의영상에서 myLogger라는 예제 미들웨어를 사용하는 부분이 있었습니다.

const myLogger = function(req, res, next) {
  console.log('LOGGED');
  next();
}

app.use(myLogger);

위 코드를 삽입한 후 각 경로에 요청을 넣어보면 모두 LOGGED가 출력되었습니다.

 

그런데 딱 한 경로, post/edit/:postNum 경로에 대한 GET요청은 출력이 되지 않습니다. 특별한 이유가 있는건지, 아니면 제 개발환경의 문제인지 감을 못잡고 있는 상황입니다.

 

선생님이나 알고계신 분의 도움을 구합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

post/edit/:postNum 경로의 GET 요청에서 myLogger 미들웨어가 동작하지 않는 문제가 발생한다면, 이는 해당 경로에서 next() 함수 호출이 누락되어 있어서 그렇지 않을까 추측됩니다.

해당 경로에서 next() 함수 호출이 이루어지지 않으면 미들웨어 체인에서 다음 미들웨어 혹은 라우터 핸들러로 요청과 함께 데이터가 전달되지 않기 때문에, 로그도 출력되지 않는 것으로 보입니다.

위 코드에서는 next() 함수가 사용됐고, 각 경로에 대한 GET 요청에서는 모두 정상적으로 작동했었기 때문에 이러한 추론을 해볼 수 있습니다.

따라서, 해당 경로에서도 next() 함수를 호출하도록 코드를 추가해보세요. 이렇게 하면 myLogger 미들웨어도 정상적으로 작동할 것입니다.

위 도움이 되셨길 바랍니다.

wonjinYi님의 프로필 이미지
wonjinYi

작성한 질문수

질문하기