그럼에도 불구하고

👨‍💻

[Node.js] HTML 페이지 서비스 본문

Node.js/Node.js basics

[Node.js] HTML 페이지 서비스

zenghyun 2023. 2. 2. 22:58

 

HTML 페이지 서비스에 대해 알아보자

 

 

예를 들어 위와 같은 경로로 파일이 저장되어 있다고 가정해 보자. 

 

node.js를 이용해 HTML 페이지를 서비스하기 위해서는 어떻게 해야 할까?

 

 


 

admin.js라는 파일에서 add-product.html을 서비스 해보자 

 

 

res.sendFile을 사용하면 사용자에게 파일을 회신할 수 있다.

 

우선, join 메서드를 호출하기 위헤 path라는 코어 모듈을 임포트 해준다. 

 

const path = require('path');

 

path의 경우 Node.js가 기본적으로 제공하는 기능이므로 따로 설치할 필요는 없다.

 

join메서드를 호출함으로서 생성한 경로로 파일을 보낼 수 있다. 

 

path.join('첫 번째 세그먼트', '두 번째 세그먼트', '세 번째 세그먼트'... )

첫 번째 세그먼트 : Node.js에서 제공하는 전역변수로 이 프로젝트 폴더의 전체 경로를 의미한다. 

__ : 전역 변수를 의미 

dirname : 운영체제의 절대 경로를 이 프로젝트 폴더로 고정해주는 전역변수 ( 여기서는 routes 폴더를 가리킴 ) 또한 dirname은 자신이 사용된 파일의 경로를 알려주는데 이를 routes 폴더의 admin.js 파일에서 사용하고 있다. 

 

res.sendFile(path.join(__dirname, '../', 'views', 'add-product.html'));

 

두 번째 세그먼트 : 'views'라는 폴더 앞에 ../ 라는 세그먼트를 추가하여 한 단계 올라가야 views 폴더가 있음을 알려준다. 

../는 필수가 아니며, 설정하고자 하는 경로에 따라 사용하면 된다.

 

세 번째 세그먼트 : 열려고 하는 폴더 

 

네 번째 세그먼트 : 열려고 하는 file 

 

※ path.join을 사용하는 이유 

 

자동으로 리눅스와 윈도 시스템 모두에서 작동하는 방식으로 경로를 생성해 주기 때문, 또한 path.join은 실행 중인 운영체제를 감지해서 자동으로 올바른 경로를 생성한다. 

 

 

오류 페이지 반환

 

 

내가 반환하고자 하는 페이지를 만들어주고,  app.js 페이지에서 path 경로를 잡아준다. 

 

그리고 미들웨어를 사용하여 404 페이지의 경로를 잡아주면 된다. 

 

 

 

Comments