ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Node.js 기초 최종 코드(생활코딩 따라하기)
    Node.js 2020. 8. 19. 00:36

     

    최종코드

    var http = require('http');
    var fs = require('fs');
    var url = require('url');
    
    function templateHTML(title, list, body){
      return `
        <!doctype html>
        <html>
        <head>
        <title>WEB1 - ${title}</title>
        <meta charset="utf-8">
        </head>
        <body>
          <h1><a href="/">WEB</a></h1>
          ${list}
          ${body}
        </body>
        </html>
      `;
    }
    
    function templateList(filelist){
      var list = '<ul>';          
      var i = 0;
      while(i < filelist.length){
        list += `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`
        i += 1;
      }
      list = list + '</ul>';
      return list;
    }
    
    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(err, filelist){
              var title = 'Welcome';
              var description = 'Hello Node.js';
              var list = templateList(filelist);
              var template = templateHTML(title, list, `<h2>${title}</h2><p>${description}</p>`);
              response.writeHead(200);
              response.end(template);     
            })
    
          } else{
            fs.readdir('./data', function(err, filelist){  
              fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
                var title = queryData.id;
                var template = templateHTML(title, list, `<h2>${title}</h2><p>${description}</p>`);
                var list = templateList(filelist);
                response.writeHead(200);
                response.end(template);
              });
            });
          }
    
        } else{
            response.writeHead(404);
            response.end('Not found');
        }
    
     
    });
    app.listen(3000);

     

    이걸 또 중복 제거(if 문부터)

    if (pathname === '/') {
      fs.readdir('./data', (err, fileList) => {
        var list = templateList(fileList);
        fs.readFile(`data/${queryData.id}`, 'utf8', (err, data) => {
          if (queryData.id === undefined) {
            var title = "welcome";
            var description = "hello node.js";
          } else {
            var title = queryData.id;
            var description = data;
          }
          var body = `<h2>${title}</h2>${description}`;
          var template = templateHTML(title, list, body);
          response.writeHead(200);
          response.end(template);
        });
      });
    }
Designed by Tistory.