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

wdhgood123님의 프로필 이미지
wdhgood123

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

static 미들웨어에 대한 질문입니다

작성

·

185

0

노드버드를 만들다 궁금증이 생겨 질문합니다

저희가 static을 배울때 분명 지정된 폴더의 정적인 파일들을 브라우저에서 접근할 수 있도록 하는 기능이 있습니다

그리고 파일이 없으면 next를 호출하지만 파일이 있으면 응답으로 파일을 보내고 다음 미들웨어를 실행하지 않습니다

 

제 궁금증은 app.js 파일의

app.use(express.static(경로는'public'));

이 코드에서 public폴더에는 main.css가 있고 그렇다면 css를 보내고 다음 미들웨어를 실행하지 않는 것이 맞지 않나요?

네트워크로 찾아보니 로그인 전에는 views폴더의 layout.html이 실행되던데 이유가 궁금합니다.

또 로그인 이후에도 main.css가 네트워크에 있던데 왜 static 아래에 있는 미들웨어가 실행되는 것인가요?

경로가 uploads폴더인 경우도 마찬가지로 왜 요청경로에 파일이 있으면서도 왜 다음 미들웨어가 실행되는 건가요?

 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

다음 미들웨어가 실행된다는 것을 어떻게 확인하셨나요?

main.css를 불러오는 요청이랑 layout.html을 불러오는 요청이랑 서로 다른 요청입니다. 둘이 다른 요청인데 하나의 요청이라고 착각하신 건 아닐까요.

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

로그인 한 이후에도 main.css가 뜨던데

로그인 하면 패스포트로 세션을 연결해서 로그인 된 화면을 보여주지 않나요?

app.use(passport.session()); 랑 app.use('/',pageRouter); 이 실행되는 것이 아닌가요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

로그인 한 이후에 main.css가 뜬다는 게 무슨 말씀이신지 잘 모르겠습니다.

로그인 한 이후에 main.css가 뜨면 안 되는 이유는 뭔가요? 로그인된 화면에서도 main.css를 불러오는데요?

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

코드를 보면 세션을 불러오는 코드가 static 미들웨어보다 아래에 있는데

static미들웨어가 실행됨에도 불구하고 세션 불러오는 코드가 왜 실행되는지 궁금합니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

그러니까 세션을 불러오는 코드가 실행되었다는 것을 어떻게 확인하셨는지 궁금합니다. 그리고 그 코드가 main.css를 불러오는 요청에 실행된건지도요.

wdhgood123님의 프로필 이미지
wdhgood123

작성한 질문수

질문하기