본문 바로가기

개발일지

node.js, Express에서 정적 파일 제공

반응형

 node.js의 Express에서 정적 파일을 웹서비스로 제공하는 방법을 알아보겠습니다.

 이미지, CSS 파일 및 JavaScript 파일과 같은 정적 파일을 제공하려면 Express의 기본 제공 미들웨어 함수인 express.static을 사용합니다.

 정적 리소스가 포함된 디렉토리의 이름을 express.static 미들웨어 함수에 전달하면 파일의 직접적인 제공을 시작할 수 있습니다. 예를 들면, 다음과 같은 코드를 이용하여 public이라는 이름의 디렉토리에 포함된 이미지, CSS 파일 및 JavaScript 파일을 제공 할수 있습니다.


app.use(express.static('public'));

public 디렉토리에 포함된 아래와 같은 파일을 로드 할수 있습니다.

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

여러 개의 정적 디렉토리를 이용하려면 express.static 미들웨어 함수를 여러 번 호출 하면됩니다.

app.use(express.static('public'));
app.use(express.static('files'));

Express는 express.static 미들웨어 함수를 이용해 정적 디렉토리를 설정한 순서대로 파일을 검색합니다.

위의 성질을 이용하여 404와 같은 에러를 처리하라면 express.static 미들웨어 함수의 제일 마지막에 다음과 같은 코드를 추가합니다.

app.use(function(req, res, next){
    res.status(404).send('Sorry cant find that!');
});

express.static 함수에 제공되는 경로는 node 프로세스가 실행되는 디렉토리에 대해 상대적입니다. Express 앱을 다른 디렉토리에서 실행하는 경우에는 다음과 같이 원하는 디렉토리의 절대 경로를 사용하는 것이 더 안전합니다.

app.use('/static', express.static(__dirname + '/public'));


위의 내용은 Express 공식 홈페이지를 찹조 하였습니다.

반응형