-
Node.js - 글 삭제하기Node.js 2020. 8. 24. 19:20
delete 만들 때 링크(a태그)로 만들면 수정과 같이 어떠한 페이지로 이동된다.
따라서 만약 delete버튼을 눌렀을 때 바로 삭제를 하고 싶다면,
절대! 링크로 만들면 안된다.
이러면 안돼 delete 버튼 만들기
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; console.log(pathname); if(pathname === '/'){ if(queryData.id === undefined){ fs.readdir('./data', function(error, filelist){ var title = 'Welcome'; var description = 'Hello, Node.js'; var list = templateList(filelist); var template = templateHTML(title, list, `<h2>${title}</h2><p>${description}</p>`, `<a href="/create">create</a>` ); response.writeHead(200); response.end(template); }); } else{ fs.readdir('./data', function(error, filelist){ fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){ var title = queryData.id; 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" onsubmit=""> <input type="hidden" name="id" value="${title}"> <input type="submit" value="delete"> </form>` ); response.writeHead(200); response.end(template); }); }); }
onsubmit 은 글이 만약 바로 삭제 된다면 무섭기 때문에, 안에 자바스크립트 통해 alert()로 삭제할 것인지 알린다던지 할 수 있음
delete 기능 추가
} else if(pathname === '/delete_process'){ var body = ''; request.on('data', function(data){ body += data; }); request.on('end', function(){ var post = qs.parse(body); var id = post.id; fs.unlink(`data/${id}`, function(error){ response.writeHead(302, {Location: `/`});; response.end(); }); }); } else{ response.writeHead(404); response.end('Not found'); } }); app.listen(3000);
fs.unlink() 통해 파일 삭제
삭제가 끝나면 home으로 돌아가도록 redirection 설정
'Node.js' 카테고리의 다른 글
Node.js 글 수정하기 (0) 2020.08.24 Node.js 파일생성(글쓰기)/ 파일생성과 동시에 Redirect (0) 2020.08.24 Node.js - POST방식으로 전송된 데이터 받기(생활코딩) (0) 2020.08.23 Node.js - 글생성 UI만들기 (0) 2020.08.23 Node.js Package Manager(npm) 와 PM2 (0) 2020.08.19