반응형
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 공식 홈페이지를 찹조 하였습니다.
반응형