개발로그필름

[WEB] Pug 본문

WEB

[WEB] Pug

yuullog 2022. 7. 24. 17:05
728x90
반응형
SMALL

HTML을 리턴하는 방법은 두 가지 옵션이 있다

res.send("<h1>Hello!</h1>")으로 HTML 문자열을 그대로 보내는 방법

하지만 보내려는 HTML 코드 양이 많아지면 가독성도 떨어지고 보기에도 안 좋다

 

그 해결방안으로 나온 것이 Pug!

 

pug는 템플릿을 이용해서 view 만드는 것을 돕는 템플릿 엔진이다

 

실행하고 있는 프로젝트 터미널에 npm i pug 설치

 

app.set("view engine", "pug");

 

express에게 이제부터 사용할 view engine은 pug라고 말해주기 

 

express는 view 폴더 안에 있는 파일을 찾기 때문에 초기 세팅도 고쳐주어야 한다

express 튜토리얼 홈페이지에 나와있는 설명을 보면

기본적으로 process.cwd() + 'views' express가 뷰를 찾는 방법이다'

 

따라서 pug 파일은 view 폴더를 만든 뒤 그 안에 생성하도록 하자

 

위의 사진은 임시로 만들어본 pug 파일 경로와 안에 내용이다

 

그럼 생성한 pug 파일을 어떻게 유저에게 보낼까?

개발자에게는 바로 유저에게 보내지는 것처럼 보이지만

파일이 유저에게 가는 경로는 우선 작성한 코드를 pug로 보내고 pug가 렌더링 해 평범한 html 코드로 변환해준다

 

pug 파일 리턴 방법
export const trending = (req, res) => res.render("home");

 

res.render()로 view 이름을 넣어 렌더링 한다

express가 views 디렉토리 안에 있는 pug 파일 중 home.pug를 찾아 사용자 화면에 보여준다

 

여기서 잠깐!

하지만 웹을 실행해보면 경로에 따른 에러가 발생한다

기본적으로 express는 cwd + /views에서 pug 파일을 찾아 코드를 보여주는데

우리가 렌더링 할 파일은 cwd/src/views에 있다

 

따라서 app.set() 설정을 바꿔주자

app.set("views", process.cwd() + "/src/views");

 

그럼 정상적으로 웹 화면이 실행되는 것을 볼 수 있다

 

 

반응형
LIST

'WEB' 카테고리의 다른 글

morgan  (0) 2023.01.16
[WEB] MVP.css  (0) 2022.07.25
[WEB] Router  (0) 2022.07.23
[WEB] middleware  (0) 2022.07.15
[WEB] Request, Response  (0) 2022.07.14
Comments