홈페이지 구현
홈부분에 undefined가 뜬다 이유는 홈 제목과 본문이 없기 때문 즉 홈에 대한 처리를 해야된다
if문 안에 if중첩문으로 코드를 넣어준다
if(queryData.id === undefined){
var title = 'Welcome';
var description = 'Hello, Node.js';
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);
});
}
만약 쿼리데이터의 아이디가 undefined라면 위와같이 되도록 설정
title값과 description값을 쿼리데이터가 아닌(undefined이기 때문) Welcome과 Hello, Node js로 하기로 했다
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>
<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');
}
이것저것 정리했다
readfile은 undefined에 필요가 없기 때문에 없애주었다 (파일이름을 읽어서 data 폴더 안에 동일한 파일이름의 파일의 내용을 불러오는 것인데 그것이 의미가 없기 때문이다)
만약 언디파인이라면 아니라면 200
그리고 이도저도 아니라면 404
var title, var description 값들은 너무 멀리있어서 해당 구문 근처로 옮겨주었다