JavaScript, TS
[Express.js] express.static() 정적 파일 서비스
개발하는지호
2023. 12. 3. 19:46
미들웨어
express 프레임워크의 장점 중 하나로 미들웨어를 사용한다.
미들웨어란, 요청에 대한 응답 과정 사이에서 어떠한 동작을 하는 프로그램 즉, express는 요청이 들어오면 그에 대한 응답을 보내주는데 클라이언트가 보내는 요청을 받고 응답을 보내주는 과정의 중간(midde) 에 개발자가 개입, 간섭하여 로직생성, 요청 및 응답 객체에 대한 변경과 흐름제어 등을 하며, express.static()은 이런 미들웨어 중 하나이다. 즉, 요청받고 응답하기 전에 처리를 하는 셈이다.
express.static()
express.static() 미들웨어는 html, css, js 이미지 등 정적 파일에 대한 기본 경로를 제공해준다.
*정적 파일 : 직접 값이나 데이터에 변화를 주지 않는 이상 변하지 않는 파일
왜 사용하나?
로컬 환경에서 html 파일을 브라우저로 실행했을 경우 정적 파일이 정상적으로 동작하는데, Node.js로 html파일을 구동하면 아무것도 적용이 안 된다. 이는 로컬 환경에서 html 파일을 실행했을 때 정적 파일의 상대 경로와 node.js로 서버를 실행하여 파일을 구동했을 때의 상대 경로가 다르기 때문이다. 이를 해결하기 위해 express.static() 미들웨어를 사용해 정적 폴더를 지정하여 서버에서는 해당 정적 폴더에 접근해 파일을 가져올 수 있다.
사용법
app.use(express.static('public'))