관리 메뉴

Mini

24. 10. 4. 개발일지 // 정적서빙버그 fix 본문

JS/boostCamp

24. 10. 4. 개발일지 // 정적서빙버그 fix

Mini_96 2024. 10. 5. 00:46

* 정적서빙버그 fix

  • 문제 :
    • css, js 파일을 못찾아와서 text만 있는 html이 출력되는 버그
    • write after end 버그
  • 일단 어떻게 작동하는지 살펴보자

  • 해결
    • 일단 설계도에 따라 정적파일이 제공된경우 바로 return 되도록했다. (이를위해 미들웨어 밖으로 빼내야했다..)
    • 결론부터 말하자면 fs의 동기/비동기 문제때문이었다.

  • 추정 원인들
    • mineType 미설정문제
      • 브라우저에 렌더링되지않고 다운로드되는문제도 ContentType 설정문제였다.

render할때 이부분을 안적어줘서, 기본타입(octat?)으로 제공되어 브라우저가 해석을 못한것이었다.

  • fs의 비동기 문제
    • 원래 await가 없어서 파일을 읽기전에 그냥 무조건 return false가 되는게 원인이었다.

사용하는 부분에서도 await를 잘 달아줘야 의도대로 작동한다.
버그 fix!!

 

 

  • 문제는 앞으로 미들웨어를 추가할때마다 (ex : 세션검사, 권한검사 등) handleRequest 코드에 if ( session ) return 등을 추가해야된다는 점이다.
  • 해결 ? : req의 filed값을 수정해 req.isEnded=true로 둔다음 이를 체크해주는 방법등이 생각남.

미들웨어에서 res를 보낸경우, 끝냈음을 명시.