less than 1 minute read

06_Node.js File List

  • Node.js에서 파일목록 알아내기

main.js의 기존 list

      var list=`<ol>
        <li><a href="/?id=HTML">HTML</a></li>
        <li><a href="/?id=CSS">CSS</a></li>
        <li><a href="/?id=JavaScript">JavaScript</a></li>
      </ol>`;

<li> 태그의 추가, 삭제 등이 빈번하다면 이를 일일이 수정하는 것은 불편하다.

data 폴더 디렉토리에 파일이 추가되거나 삭제 되었을 때 어떻게 nodejs를 통해 알아낼 수 있는가

nodejs file list in directory 구글링

- 코드
const testFolder = './tests/';
const fs=require('fs');

fs.readdir(testFolder, (err, files) => {
  files.forEach(file => {
   console.log(file);
  });
})

- readdir.js 에서 응용
const testFolder = './data/';
const fs = require('fs');

fs.readdir(testFolder, (err, files) => {
    files.forEach(file,  => {
    console.log(file)
  });
})

fs.readdir(testFolder, function(error, filelist){
  console.log(filelist);
})

files의 값

c:\_dev\_nodejs\nodejs1>node readdir.js
[ 'CSS', 'HTML', 'JavaScript' ]

nodejs는 어떤 특정 디렉토리의 파일 목록을 배열로 만들어서 전달한다.
배열을 반복적으로 처리한다.

  • App 제작 - 글목록 출력하기

main.js에 추가

    fs.readdir('../nodejs1/data', function(err, filelist){
      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 에서 일일이 입력한 <ul><li> 태그를
${list} 로 대치한다.

이제, 파일을 랜덤으로 추가해도 main.js의 목록 코드를 수정하지 않아도 새로 추가가 되는 걸 확인할 수 있다.