05_Node.js App - Not Found
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
}