본문 바로가기
프로그래밍 개발/NodeJs

Node.js - 파일 목록 알아내기

by Jinseok Kim 2020. 12. 12.
반응형

 

 

 

 파일 목록 알아내기

 

 

 

 

 

 

파일을 한꺼번에 혹은 편리하게 관리하기 위해서는 컴퓨터에 파일 목록을 맡겨야한다.

 

즉 파일 목록을 알아내어 보내줘야 한다는 것이다.

 

 

 

 

 

아래 코드는 특정 폴더안에 있는 파일 리스트를 불러오는 코드이다.

 

var testFolder = './data';
var fs = require('fs');
 
fs.readdir(testFolder, function(error, filelist){
  console.log(filelist);
})

 

 

 

  • data 폴더 안에 있는 파일 리스트들을 프롬프트 명령으로 불러온 것을 확인 할 수 있다.

 

 

 

 

 

 

응용

 

var http = require('http');
var fs = require('fs');
var url = require('url');
 
var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    var pathname = url.parse(_url, true).pathname;
    if(pathname === '/'){
      if(queryData.id === undefined){
 
 // 파일 목록 불러오기 코드를 이용하였다.
        fs.readdir('./data', function(error, filelist){
          var title = 'Hi';
          var description = 'jin seok';
 // 변수 list을 정하고 불러온 파일을 넣기 위하여 넣을 공간에 
 // ${list}로 지정하고 아래와 같이 코드를 작성하였다.         
          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}으로 링크를 클릭 할때마다 각각 다른 파일이 입력된다.           
            ${list}
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
          `;
          response.writeHead(200);
          response.end(template);
        })
 
 
 
      } else {
        fs.readdir('./data', function(error, filelist){
          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);
          });
        });
      }
    } else {
      response.writeHead(404);
      response.end('Not found');
    }
 
 
 
});
app.listen(3000);

 

  • 위와 같이 특정 폴더에서 파일 목록을 불러오는 특정 폴더에 테스트로 TEST라는 텍스트 파일을 만들어 보았는데 곧바로 웹 결과에서도 TEST 파일 목록을 불러와 적용된 것을 확인 할 수 있다.
  • 즉 위의 코드를 적용하고만 있어도 파일만 특정 폴더에 추가시키면 바로 웹에 적용할 수 있는 매우 효율적인 서버관리 시스템이 구축되었다.

 

 

 

 

 

반응형

댓글