NodeJS

[NodeJS] - 웹사이트 2차 fs.readdir로 자동화시키기

Riucc 2018. 9. 16. 15:24

웹사이트 2차 fs.readdir로 자동화시키기

 

이전 시간에 파일목록을 가져오는 fs.readdir을 알아보았다

이번엔 그것을 이용하여 웹사이트에서 반복문으로 

파일 목록을 불러와 파일 내용을 뿌려주는 것을 알아보겠다

(나중에 추가하거나 수정할 때, 로직 변경없이 파일만 추가하면 되는!!! 와 대박!!!)


    if (pathname === '/') {

        if (queryData.id === undefined) { // 주소에 queryData.id 를 찾지 못했을 때

                                                    // 즉, http://localhost:3000/ 아무 데이터를 안줬을 때

            // 파일목록을 불러온다(filelist에)

            fs.readdir('./data', function (error, filelist) {

                console.log(filelist);


                var title = '존재하지 않은 페이지';

                var description = '존재하지 않은 페이지입니다';

                

                // 반복문을 통해 파일목록( ${filelist} )을 ul 과 li 태그에 뿌려준다

                // 파일목록은 배열형이기에 배열로 접근한다 ${filelist[0]} 배열이기에 0번부터!!!

                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>';

                

                // 템플릿 리터럴 표시(` ` 사이에 글 막쓰기, 변수는 ${변수명} 접근, 매우 편리)

                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); // 서버연결 성공 시 정상 작동 200

                response.end(template);  // 응답해서 뿌려줘라

            })

        } 


     


참조 : https://opentutorials.org/course/3332/21123 (생활코딩)