ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Wetube clone] 5.1 궁금증
    카테고리 없음 2023. 3. 7. 17:01

    1. pug(view engin)를 사용한 이유

    - 의문점 : 왜 굳이 html을 만들지 않고, pug라는 view engin을 사용하는 걸까?

    - 답 :

    res.sendFile(__dirname, 'potato.html') 같이 html 파일을 바로 렌더링 할 수 있긴 합니다. 하지만 Nico쌤이 답변해주신 것처럼 request를 통해 각종 변수를 전달하지 못하기 때문에 미리 정해둔 화면 밖에는 보여줄 수가 없고, header 나 footer 등을 따로 partial로 만들어 관리하고 모든 파일에 첨부한다든지 할 수 있기 때문에 pug를 쓰는 것입니다. 또한 pug외에도 ejs등 다른 template engine도 있습니다. 저는 써 본 것 중에서는 pug가 제일 깔끔하고 좋은 것 같네요.
    그리고 아예 react등의 framework를 사용하시면 템플릿 엔진 없이 view부분을 만드실 수 있습니다.

    rickeykoh 님 답변

     

    2. Express 에서의 템플리트 엔진(여기서는 pug) 사용을 위한 app 설정

    1) views , 템플리트가 있는 디렉토리 생성

    app.set('views', './views')

    // 기본적으로 Express 는 views 안에 있는 view를 찾기 때문에! views를 만들어주는 것임.

     

    2) view engine으로 pug를 쓰겠다고 설정

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

     

    *주의할 점

    이때, Express는 views 디렉토리를 "현재 작업 디렉토리(cwd : current working directory)" 에서 찾는다.

    그래서, 내가 만들어 놓은 views 디렉토리의 위치가 process.cwd/views 가 아니면 오류가 남

     

     // 현재 작업 디렉토리를 알아내는 코드는 아래를 참고

    console.log(process.cwd())

     

     

    현재 작업 디렉토리 : node.js 를 실행시키는 디렉토리

     

    3) views 디렉토리에 생성된 pug 파일을 핸들러에 넣고 render 시켜줘야함

    export const trending = (req, res) => {
        res.render("pug파일 이름");
    }

    요런식으로! 응답을 render된 pug로 하겠다는 거임

     

    4. 참고

    - 5.1 강의 댓글

    - https://www.npmjs.com/package/pug

     

    pug

    A clean, whitespace-sensitive template language for writing HTML. Latest version: 3.0.2, last published: 2 years ago. Start using pug in your project by running `npm i pug`. There are no other projects in the npm registry using pug.

    www.npmjs.com

     

Designed by Tistory.