Node.js

App - Not found 오류 구현

수업소개

존재하지 않는 정보에 대한 요청이 들어왔을 때 Not found 오류 메시지를 전송하는 방법을 알아봅니다. 

 

 

 

강의

 

 

 

소스코드

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;
    var title = queryData.id;

    if(pathname === '/'){
      fs.readFile(`data/${queryData.id}`, 'utf8', function(err, 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>
        `;
        response.writeHead(200);
        response.end(template);
      });
    } else {
      response.writeHead(404);
      response.end('Not found');
    }



});
app.listen(3000);

 

댓글

댓글 본문
  1. Jeong Il Haan
    20210415
  2. kujern
    하나도 이해가 가질 않는다.
  3. 슬개골탈구
    해당 내용을 진행하고나니, 본문 출력이 undefined로 나옵니다.
    '파일을 이용해 본문 구현' 영상을 봤을 떄도 본문 출력이 되지 않아 한참을 고생하다가 댓글을 보고 해결했는데,
    또 다시 똑같은 문제가 생기네요 ㅜ 너무 답답합니다
  4. byoonn
    완료
  5. thebluerat
  6. chimhyangmoo
    21.02.18
  7. jeisyoon
    2021.02.07 완료
  8. 마아앙
    2021.01.31
  9. 임찬혁
    완료
  10. 뭄수
    완료
  11. ohhigo
    21/1/22 ★★★★★
    Not found 처리
  12. wnstjd9701
    2021-01-18
  13. 할수이다
    cmd에 왜 아무것도 안뜨는지 모르겠습니다..
  14. 2021.01.04 완료!
  15. 손민철
    20/12/29 완료
  16. 생활둘기
    2020 12 25
  17. kkn1125
    20.12.21 완료~!
  18. 옹옹
    20201123
  19. 이윤재
    20201122완료
  20. 2020.11.03.TUE.
  21. 콜라
    20201014완료
  22. Yong Hyun Lee
    완료 201001
  23. 윤병록
    20.09.24
  24. OQ the YOUNG
    2020.09.08
  25. CodingChan
    2020. 09. 06
  26. 마준
    완료
  27. 마준
    완료
  28. 코딩조아
    20.08.05
  29. 뚜따띠또따
    20/07/31 완료!
  30. 코딩하는렌즈쟁이
    2020-07-24 (금)
    완료!
  31. 리다
    20200713
  32. 불스택
    20.07.10 완료
    감사합니다
  33. 영호팍
    console.log(request.url);을 사용했을 때 나오는 것 같아요. 그래서 저도 님 댓글 보고 궁금해서 console.log(request);로 하고 cmd 실행봤는데 여러 정보가 뜨더라고요. 보니까 url값이 html에서만 2개가 발견 되더라고요. javascript와 css는 이미지 파일이 없어서 1개만 뜹니다. 제가 생각하기에는 html이 이미지를 머금고 있어서 url이 2개가 뜬게 아닐까요!!
    대화보기
    • 영호팍
      출석스
    • Amousk
      좋은강의 감사합니다.
    • 임승원
      HTML로 들어갈 때는 pathname가 '/'이 아니라 '/coding.jpg' 인데
      1. 왜 얘만 /coding.jpg로 뜨는지
      2. 얘만 /coding.jpg로 뜸에도 불구하고 조건문에서 if (pathname==='/')에서 걸러지지 않고 내용이 잘 나오는지
      궁금합니다.
    • 2020.06.15
    • Katherine Roh
      완료 :)
    • 김보미
      완료
    • 김재익
      완료
    • 바다의왕자
      완료
    • 윤영훈
      오 감사합니다!
      대화보기
      • Kuk-Il Kim
        https://m.blog.naver.com......%2F

        해당 블로그를 참고하시면 path, pathname 등 url 포맷에 대한 이해를 높이실수 있습니다.
      • Eunsung Shin
        완료
      • 준바이
        2020 03 18
      • 어인
        제가 공부하고 이해하기로는

        'localhost:3000/' 에서 '/' 기호는 path(경로)의 시작을 알려줍니다.
        '/폴더/폴더/파일.확장자'를 통틀어 pathname이라고 하는 것 아닌가 생각합니다.

        '?' 기호는 query string의 시작을 알려줍니다.

        query string은 매개변수를 가질 수 있습니다.
        'id=HTML'도 하나의 매개변수이고, (name=value)의 형태입니다.
        query string에 여러개의 매개변수를 주고싶을 때는 '&' 기호를 사용합니다.
        그럼 '?id=HTML&(name=value)' 같은 형태가 되는 것입니다.!
        대화보기
        • 03.09 완료
        • eddylee123456
          복습
        • eddylee123456
          완료
        • Gritter
          감사합니다.
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기