node.JS pug #1

404·2021년 12월 23일
0

node.JS no.3

sending template by using "PUG"

pug is template engine

const handleHTML = (req, res) => {
  return res.send("<h1>Im HTML</h1>");
};

위와 같이 HTML 문자열을 그대로 보내는 것은 감당할수 없는 문제를 야기한다.
이 문제를 해결하기 위해서

app.set("view engine", "pug"); // view engine 으로 pug를 사용할 것이다.
app.use(logger); // morgan은 logger middleware이다.
app.get("/", handleHome); 

nodeJS에게 view engine 으로 pug를 사용한다는 것을 알려주고.

const handleHTML = (req, res) => {
  return res.render("home");
}; // return 안해도 됨

HTML 문자열을 보내주는 대신 home.pug 파일을 전송한다.
여기서 home.pug의 위치가 중요한데...
cwd(current working directory)에 vies라는 폴더를 생성하고,
그 안에 home.pug 파일을 생성해야 위 코드가 정상적으로 실행된다.

cwd는 node.js를 부르는 주체가 있는 곳이고, 그 주체는 package.jason 이다.

만약 코드를 한 곳에 다 모아두려는 목적으로 "views" 폴더의 위치를 바꾸고 싶다면,
pug의 default 경로를 변경해줘야 한다.

app.set("view engine", "pug"); // view engine 으로 pug를 사용할 것이다.
app.set("views", process.cwd() + "/src/views");
//pug의 실행 경로를 cwd 안에 있는 src 폴더 안의 views로 변경

위 작업을 해주면 views 폴더의 위치가 cwd/src/views 일때 작동한다.

다음 포스팅에서는 .pug 파일에서 html을 작성하는법을 적어야겠다.

profile
T.T

0개의 댓글