본문 바로가기

개발일기/Node.js 공부하기

Node.js - 파일 목록 알아내기 & App - 글목록 출력하기

// readdir.js

var readFolder = './data';  //  ./는 현재 디렉토리에서 라는 뜻.
var fs = require('fs');     // fs = file system

fs.readdir(readFolder, (error, filelist) => {
  console.log(filelist);  //filelist는 배열타입으로 반환됨.
});

 


 

콘솔창 실행

node nodejs/readdir.js

 

결과

[ 'CSS', 'HTML', 'JavaScript' ]

 

 

출처

opentutorials.org/course/3332/21122

 


 

// main.js

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;
    var title = queryData.id;

    if(pathname === '/'){
      
      fs.readFile(`data/${title}`, 'utf8', (error, description) => {
        if(title === undefined){
          title = 'Welcome';
          description = 'Hello, Node.js';
        }

/* data폴더에 있는 파일 목록 읽어와서 html에 list로 만들어 주기 */
        var readFolder = './data';
        fs.readdir(readFolder, (error, filelist) => {
          var listString = 
              filelist.map((item) => {
                return `<li><a href="/?id=${item}">${item}</a></li>`;
              }).join('');

          var list = `<ul>${listString}</ul>`;

          var templete = `
          <!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(templete);
        });
      });
      
    }else{
      response.writeHead(404);
      response.end('Not found');
    }
      
    });
    app.listen(3000);