반응형
express.static()
- express의 미들웨어 모듈
- 이를 이용하면 정적 파일을 직접적으로 제공할 수 있다.
- 예로 들면, 아래 코드를 작성하면 public이라는 이름의 디렉터리에 포함된 이미지, css 파일 및 js 파일을 url로 제공하게 된다.
app.use(express.static('public'));
다음과 예와 같이 /static 경로를 통해서 public 디렉터리에 포함된 파일을 로드할 수 있다.
app.use('/static', express.static('public'));
http://localhost:3000/css/style.css
http://localhost:3000/images/logo.css
http://localhost:3000/js/main.js
http://localhost:3000/public/images/logo.svg
http://localhost:3000/public/index.html
💡 express.static 함수에 제공되는 경로는,
node 프로세스가 실행되는 디렉터리에 대해 상대적이다. 따라서 express 앱을 다른 디렉터리에서 실행하는 경우에는 제공을 원하는 디렉터리의 절대 경로(__dirname)를 사용하는 것이 안전하다!
app.use('/static', express.static(__dirname + '/public'));
(+) __dirname is not defined
Express에서 commonjs 모듈을 사용하다가 es 모듈을 사용하게 된 경우에 해당 에러가 발생하게 된다.
왜냐하면 commonjs에서 사용하던 __dirname 변수가 es 모듈에는 없기 때문!
따라서 에러를 해결하려면 다음과 같이 작성해야 한다.
import path from 'path';
const __dirname = path.resolve();
CommonJS 모듈
const express = require('express');
ES 모듈
import express from 'express';
반응형
'Back-End' 카테고리의 다른 글
Express.js에서 에러 처리하기 (0) | 2023.07.25 |
---|---|
[Node.js] 라우트 처리하기 (0) | 2023.07.25 |
Node.js + Express + TypeScript (0) | 2023.07.22 |
[Nest.js] NestJS가 뭐야?: NodeJS 프레임워크 공부하기 (0) | 2022.03.08 |
redis란? (0) | 2022.03.08 |