Express-동적파일을 서비스 하는 법

|

Express-웹페이지를 표현하는 방법

생활코딩 Node.js 강의
웹페이지를 정적으로 만드는 방법과 동적으로 만드는 방법의 장점과 단점을 살펴본다.

정적인(static) 파일을 전달하는 방법

  • express에게 정적인 파일이 모여있는 디렉토리 경로를 알려준다. app.use(express.static('public'));
  • 정적인 파일의 디렉토리로 설정한 public 폴더 내에 static.html 파일을 작성한다.
  • 해당 페이지는 http://localhost:3000/static.html 경로를 통해서 접근 가능하다.
  • 정적인 파일의 변경사항은 node application의 재기동 (터미널에서 node app.js 입력) 없이도 바로 반영시킬 수 있다.

동적인(dynamic) 파일을 전달하는 방법

  • app.js 파일 (main file) 내에 라우터를 추가한다.
    app.get('/dynamic', function(req, res){
      var lis = '';
      for(var i = 0; i <5; i++){
          lis += '<li>coding ' + i + '</li>';
      }
      // 자바스크립트 새로운 표준 formatted text 기능
      // ` `(grave accent) 사용을 통해서 JS에서 여려줄의 코드를 넣을 수 없는 문제를 해결
      var output =
      `<!DOCTYPE html>
      <html>
        <head>
          <meta charset="utf-8">
        </head>
        <body>
          hello Dynamic html~~!
              <ul>
                  ${lis} <!--문자열 내에서 변수 사용-->
              </ul>
        </body>
      </html>`;
      res.send(output);
    });
    
  • 터미널에 node app.js 입력 후, http://localhost:3000/dynamic 경로를 통해서 결과 확인한다.
  • 동적인 파일의 변경사항은 node application의 재기동이 필요하다.

장단점

정적인 파일 (static)

  • 장점
    • 작성이 편리하다
    • 변경내용 적용을 위해 node application의 재기동이 필요하지 않다.
    • app.js에 라우터 설정이 필요없다. (http://localhost:3000/sample.html 처럼 파일명으로 바로 접속 가능)
  • 단점
    • 반복, 변수 등의 프로그래밍적인 요소를 사용할 수 없다.

동적인 파일 (dynamic)

  • 장점
    • 반복, 변수 등의 프로그래밍적인 요소를 사용할 수 있다.
  • 단점
    • js안에서 html작성이 까다롭다.

템플릿 엔진

  • 정적인 것의 장점과 동적인 것의 장점을 합친 방법
  • 라우터 설정 필요, html 작성 편리, 변수 사용 가능, 수정 후 재기동 불필요
  • 템플릿 엔진 jade 알아보기