공부 저장소/Node.js

[생활코딩 Node.js] 4. 동적 웹 애플리케이션

tipsygypsy 2022. 7. 31. 20:36

동적 웹 애플리케이션 만들기

방금 한 것의 심화버전으로, 사용자가 입력한 id값에 따라 페이지의 내용이 바뀌도록 만들어 본다.

var http = require('http');
var fs = require('fs');
var url = require('url'); //url모듈 사용

var app = http.createServer(function(request,response){
    var url_add = request.url;
    var queryData = url.parse(url_add, true).query;
    var title = queryData.id;

    if(url_add == '/'){
      title = 'Welcome';
    }
    if(url_add == '/favicon.ico'){
      response.writeHead(404);
      response.end();
      return;
    }
    response.writeHead(200);

        // 1.html 파일의 내용을 전부 복사해서 변수에 넣고, 
        // url의 id값에 따라 바뀔 부분만 처리해 준다
    var template = `
    <!doctype html>
    <html>
    <head>
      <title>WEB1 - ${title}</title>
      <meta charset="utf-8">
    </head>
    <body>
      <h1><a href="/">WEB</a></h1>
      <ol>
        <li><a href="/?id=HTML">HTML</a></li>
        <li><a href="/?id=CSS">CSS</a></li>
        <li><a href="/?id=JavaScript">JavaScript</a></li>
      </ol>
      <h2>${title}</h2>
      <p><a href="https://www.w3.org/TR/html5/" target="_blank" title="html5 speicification">Hypertext Markup Language (HTML)</a> is the standard markup language for <strong>creating <u>web</u> pages</strong> and web applications.Web browsers receive HTML documents from a web server or from local storage and render them into multimedia web pages. HTML describes the structure of a web page semantically and originally included cues for the appearance of the document.
      <img src="coding.jpg" width="100%">
      </p><p style="margin-top:45px;">HTML elements are the building blocks of HTML pages. With HTML constructs, images and other objects, such as interactive forms, may be embedded into the rendered page. It provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated by tags, written using angle brackets.
      </p>
    </body>
    </html>
    `;

    response.end(template);

});
app.listen(5000);