본문 바로가기

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

App - 글삭제 (delete)

 

// main.js

var http = require('http');
var fs = require('fs');
var url = require('url');
var qs = require('querystring');

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 === '/'){

      if(title === undefined){
        ...
      }else{
        var readFolder = './data';
        fs.readdir(readFolder, (error, filelist) => {
          fs.readFile(`data/${title}`, 'utf8', (error, description) => {
            if(error){
              handleReadError(filelist, response);
              return;
            }

            var list = templateList(filelist);
            var template = templateHTML(title, list
              , `<h2>${title}</h2><p>${description}</p>`
              , ` <a href="/create">create</a>
                  <a href="/update?id=${title}">update</a>
                  <form action="/delete_process" method="post">
                    <input type="hidden" name="id" value="${title}"/>
                    <input type="submit" value="delete"/>
                  </form>
              `);

            response.writeHead(200);
            response.end(template);
          });
        });
      }
      
    }else if(pathname === '/delete_process'){

      var body = '';
      request.on('data', (data) => {
        body += data;
      });
      request.on('end', () => {
        var post = qs.parse(body);
        var id = post.id;
        fs.unlink(`data/${id}`, (error) => {
          if(error){
            response.writeHead(503);
            response.end(`Can't remove`);
            return;
          }
          response.writeHead(302, {location : `/`});
          response.end();
  
        });

      });

    }

1. 삭제버튼 만들기

remove를 a태그로 링크를 걸게 되면, get방식으로 보내지기 때문에 보안에 취약.

그래서 form태그로 삭제버튼을 만든다.

추후, java script로 삭제 확인 메세지 추가 필요.

 

2. 파일삭제 기능

fs.unlink(파일경로 및 파일이름, 콜백함수);

??? fs.rm() 함수와 어떻게 다른걸까???

fs.rm()는 v14.14.0에 추가되었다.

 

 

 

 

출처

App - 글삭제 - 삭제버튼 구현

opentutorials.org/course/3332/21141

App - 글삭제 기능 완성

opentutorials.org/course/3332/21142