pathname을 이용한 구분

이민호·2021년 3월 29일
0

queryString이 있으면 페이지를 보여주고 없으면 "Not Found"를 표시하도록 만들어보자

어떻게 구분할 수 있을까?
1. parse를 통해 구분점을 찾아보기

var urlObj = url.parse(_url, true);
console.log(urlObj);
#
Url {
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: [Object: null prototype] {},
  pathname: '/',
  path: '/',
  href: '/'
}

pathname은 '/' 로 구분되는 것을 알 수 있음.

  1. '/' 있으면 template를 표시하고, 없으면 오류를 표시함
if(pathname === '/'){
	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>
                    ${description}
                    </body>
                    </html>
                    `;
                    response.writeHead(200);
                    response.end(template);
} else {
	response.writeHead(404);
        response.end("Not Found! error");
}
  1. queryData.id로 구분
    queryData.id가 없으면 초기페이지, 있으면 다른페이지들 로 구분하기

    if (queryData.id === undefined){}
    else{}

 if(pathname === '/'){
        if (queryData.id === undefined){
            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>
                    ${description}
                    </body>
                    </html>
                    `;
                    response.writeHead(200);
                    response.end(template);        
        } else{
            var title = queryData.id;
            fs.readFile(`data/${queryData.id}`,'utf8',(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>
                    ${description}
                    </body>
                    </html>
                    `;
                    response.writeHead(200);
                    response.end(template);
            });
        }
profile
life is fun

0개의 댓글