1 minute read

05_Node.js APP Not Found

APP 제작 - Not found 구현

  • 사용자가 존재하지 않는 경로로 접속할 때 Not Found 오류 메시지 전송하기

사용자가 루트로 접근 했는지 아닌지를 구분하도록 한다.

주어진 url 정보 분석

//main.js
console.log(url.parse(_url, true));

c:\_dev\_nodejs>node web1/main.js
[Object: null prototype] {}
Url {
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: [Object: null prototype] {},
  pathname: '/',
  path: '/',
  href: '/' }
[Object: null prototype] {}
Url {
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: '?id=HTML',
  query: [Object: null prototype] { id: 'HTML' },
  pathname: '/',
  path: '/?id=HTML',
  href: '/?id=HTML' }
[Object: null prototype] {}

path 정보를 살펴본다.
pathname: ‘/’, path: ‘/?id=HTML’,

//pathname 정보 가져오기
var pathname=url.parse(_url, true).pathname;
console.log(url.parse(_url, true).pathname);

pathname 기준으로 접속한 정보에 따라 출력 결과를 정한다.

if(pathname === '/'){
    } else {
      response.writeHead(404);
      response.end('Not Found');
    }

루트 path 뒤에 쿼리 스트링이 아닌 유효하지 않은 값을 입력하면 NOT FOUND가 출력된다.
http://localhost:3000/?id=hh / O
http://localhost:3000/hh / X

Query String이란, URL 주소의 ? 뒤로 표현되는 것

  • App - 홈페이지 구현

미완성 상태인 루트 홈페이지 화면 작성하기.

’/’ pathname으로는 홈과 각각의 페이지를 구분 할 수는 없다.
중첩 반복문을 사용해서 구분하도록 한다.
구분 기준은 ${queryData.id}로 한다.

조건에 따라 다르게 동작하는 웹 어플리케이션.

if(queryData.id === undefined){
  Welcome
}else{
  queryData.id 쿼리 스트링을 분석하여 존재하는 파일 읽기
}else{
  Not Found
}