파일목록, 글 목록 출력하기

snow·2020년 10월 4일
0

node.js

목록 보기
5/13

파일목록 보기

  1. node/readdir.js 파일 생성
  2. 아래의 코드 작성
var testFolder = "./data";
var fs = require("fs");

fs.readdir(testFolder, function (error, filelist) {
  console.log(filelist);
});
  1. $node node/readdir.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;

  if (pathname === "/") {
    if (queryData.id === undefined) {
      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>";

        var template = `
      <!doctype html>
      <html>
      <head>
        <title>${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 {
      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>${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);

data 폴더에 새 파일을 생성하면 자동으로 추가되는 것을 확인할 수 있음

0개의 댓글

관련 채용 정보