Node.js

App - 홈페이지 구현

수업소개

조건문을 활용해서 홈페이지를 표현하는 방법을 살펴봅니다. 

 

 

 

강의

 

 

 

소스코드

main.js

변경사항

var http = require('http');
var fs = require('fs');
var url = require('url');

var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    var pathname = url.parse(_url, true).pathname;
    if(pathname === '/'){
      if(queryData.id === undefined){
        fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
          var title = 'Welcome';
          var description = 'Hello, Node.js';
          var template = `
          <!doctype html>
          <html>
          <head>
            <title>WEB1 - ${title}</title>
            <meta charset="utf-8">
          </head>
          <body>
            <h1><a href="/">WEB</a></h1>
            <ul>
              <li><a href="/?id=HTML">HTML</a></li>
              <li><a href="/?id=CSS">CSS</a></li>
              <li><a href="/?id=JavaScript">JavaScript</a></li>
            </ul>
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
          `;
          response.writeHead(200);
          response.end(template);
        });
      } else {
        fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
          var title = queryData.id;
          var template = `
          <!doctype html>
          <html>
          <head>
            <title>WEB1 - ${title}</title>
            <meta charset="utf-8">
          </head>
          <body>
            <h1><a href="/">WEB</a></h1>
            <ul>
              <li><a href="/?id=HTML">HTML</a></li>
              <li><a href="/?id=CSS">CSS</a></li>
              <li><a href="/?id=JavaScript">JavaScript</a></li>
            </ul>
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
          `;
          response.writeHead(200);
          response.end(template);
        });
      }
    } else {
      response.writeHead(404);
      response.end('Not found');
    }
});
app.listen(3000);

 

댓글

댓글 본문
  1. 김관호
    21.11.23
  2. 수강 완료후 복기하는데 시간을 3배로 썻네요 ㅋㅋ cmd에서 나오는 오류 원인 찾아보고 홈페이지에서 다른 키워드는 정상적으로 처리됬는데 web에 들어가면 튕겨져서 왜 그런가 했는데 대괄호 하나가 빠져있었네요 ㅋㅋ
    요즘 자기전에 2시간정도씩 들으면서 배우는 재미느끼고있습니다
  3. 초딩 개발자
    2021/10/14
  4. 211004
  5. 전해성
    21.09.13 완료
  6. 졸작완성하자
    210907 완료
  7. 고영히
    0823 완료
  8. 코딩하는 배달이
    더 간단하게 해봤습니다!
    var http = require('http');
    var fs = require('fs');
    var url = require('url');

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

    if(pathname === '/'){
    fs.readFile(`data/${title}`, 'utf8', function(err, description){

    if(title === undefined){

    title = 'Welcome';
    description = 'Hello, Node.js';

    }

    var template = `
    <!doctype html>
    <html>
    <head>
    <title>WEB1 - ${title}</title>
    <meta charset="utf-8">
    </head>
    <body>
    <h1><a href="/">WEB</a></h1>
    <ul>
    <li><a href="/?id=HTML">HTML</a></li>
    <li><a href="/?id=CSS">CSS</a></li>
    <li><a href="/?id=JavaScript">JavaScript</a></li>
    </ul>
    <h2>${title}</h2>
    <p>${description}</p>
    </body>
    </html>
    `;
    response.writeHead(200);
    response.end(template);
    });

    } else {
    response.writeHead(404);
    response.end('Not found');
    }
    });
    app.listen(3000);
  9. 현철훈
    var fs = require('fs');
    var url = require('url');
    var express = require('express');
    var app = express();

    app.use(express.static('.'));
    app.get('/', function (request, response) {
    var _url = request.url;
    var pathname = url.parse(_url,true).pathname;

    if(pathname === '/'){
    if(request.query.id === undefined){
    var title = 'Welcome'
    var description = 'Hello, node.js'
    var template = makeTemplate(title, description);
    response.writeHead(200);
    response.end(template);
    } else {
    fs.readFile(`data/${request.query.id}`, 'utf8', function(err, description){
    var title = request.query.id;
    var template = makeTemplate(title, description);
    response.writeHead(200);
    response.end(template);
    });
    }
    } else {
    response.writeHead(404);
    response.end('PAGE NOT FOUND !');
    }
    });

    app.listen(3000);

    function makeTemplate(title, description){
    var template = `
    <!doctype html>
    <html>
    <head>
    <title>WEB1 - ${title}</title>
    <meta charset="utf-8">
    </head>
    <body>
    <h1><a href="/">WEB</a></h1>
    <ul>
    <li><a href="/?id=HTML">HTML</a></li>
    <li><a href="/?id=CSS">CSS</a></li>
    <li><a href="/?id=JavaScript">JavaScript</a></li>
    </ul>
    <h2>${title}</h2>
    <p>${description}</p>
    </body>
    </html>
    `;
    return template;
    }
  10. 승뇽뇽
    ㅇㄹ
  11. 이상하게저는 undefined 로 안뜨고 null표기되는데 이유가 따로 있을까요?..

    if(queryData.id === undefined) 이부분을
    if(queryData.id === null) 로 수정하니깐 되긴하는데..
  12. 박사장
    21 07 28 완료!
  13. labis98
    20210721 completed!
  14. 2021.07.17
  15. 정정해주시는 센스...
  16. 1분쯤에 반복문이 아니라 조건문을 말씀하신것같은데 흠칫했네요 ㅋㅋㅎ
  17. warmpeace
    완료~
  18. Jeong Il Haan
    20210415
  19. kujern
    걍 skip해야할 듯.
  20. byoonn
    완료
  21. !queryData.id로 해도 되네요
  22. thebluerat
    휴휴
  23. chimhyangmoo
    21.02.18
  24. jeisyoon
    2021.02.07 App - 홈 페이지 구현 완료
    점점 어려워 지내요 ~~~
  25. 마아앙
    2021.01.31
  26. hanel_
    21.2.1 2월달과 함께 시작 ~
  27. 임찬혁
    완료
  28. 뭄수
    완료
  29. ohhigo
    21/1/22
  30. wnstjd9701
    2021-01-18
  31. 2021.01.04 완료!
  32. 손민철
    20/12/29 완료
  33. 생활둘기
    2020 12 25
  34. kkn1125
    20.12.21 완료~!
  35. 이윤재
    20201123완료
  36. Sunny
    2020.11.03.TUE.
  37. ㅇㄹ
  38. 콜라
    20201014 완료
  39. Yong Hyun Lee
    완료 201001
  40. 윤병록
    20.09.24
  41. CH Yim
    2020.09.13
  42. vampa
    2020.09.09
  43. OQ the YOUNG
    2020.09.08
  44. CodingChan
    2020. 09. 06
  45. 코딩조아
    20.08.05
  46. 뚜따띠또따
    20/07/31 완료!
  47. 누누
    2020.07.31 완료
  48. 코딩하는렌즈쟁이
    2020-07-25 (토)
    완료!
  49. Jenny Song
    24th.JULY.2020 완료
  50. 리다
    20200713
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기