23.6.4.
data 디렉토리에 있는 파일들의 이름을 이용해서 글 목록을 생성하는 기능을 구현하기
지난시간 : 파일목록 알아낼 수 있는 것을 배움.
<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>
이 부분을 파일목록으로 바꾸자
fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){ ~~~ });
따라서 이 코드는 사실상 필요 없음
==> 코드 삭제
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);
이 부분을 filelist로 감싸준다.
정상실행되는 것 확인
fs.readdir('./data', function(error, filelist){ //이 코드 안으로 원래 있던 내용 이동! })
<list>
부분을 변수로 변경하기!<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>![](https://velog.velcdn.com/images/miiingirok/post/e31c75ec-2fa3-492e-bdac-808f0ae2e02b/image.JPG) </ul>
이 부분을 변수(list
)로 변경
${list}
결과
(하이퍼링크는 없어진 상태)
/* 참조
var list = `<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>`;
*/
var list = `<ul>`;
var i = 0;
while(i < filelist.length){
list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`; //filelist의 i값에 따라서 하이퍼링크 연결!!
i = i + 1;
}
list = list + `</ul>`;
결과
else { //id 값이 있는 경우
fs.readdir('./data', function(error, filelist){ //filelist는 data디렉토리 안에 있는 파일이어야 함
var title = 'Welcome';
var description = 'Hello Node.js';
var list = `<ul>`;
var i = 0;
while(i < filelist.length){
list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
i = i + 1;
}
list = list + `</ul>`;
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>
${list}
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.writeHead(200);
response.end(template);
});
});
}
정상작동!
소!름!
혁명적
이라는 단어를 자주 쓰신다.nodejs
가 실행시키는 구조가 너무 신선하고 새로웠다.fs.readdir('./data', function(error, filelist){ //filelist는 data디렉토리 안에 있는 파일이어야 함 var title = 'Welcome'; var description = 'Hello Node.js'; var list = `<ul>`; var i = 0; while(i < filelist.length){ list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`; i = i + 1; } list = list + `</ul>`;