코딩(개발)/Node.js
Ajax를 이용한 데이터 삭제
플랜데버
2022. 6. 20. 15:58
# ajax 기본 구조
<script>
$.ajax({
method : 'DELETE', --> 이걸 요청한다
url : '/delete', --> 이 페이지로
data : 1 --> 이 데이터를
}).done(function(result){
성공시 여기있는 코드 실행
});
</script>
# 삭제코드 server.js
//삭제
app.delete('/delete', function(request , response){
request.body._id = parseInt(request.body._id);
db.collection('post').deleteOne(request.body, function(err, result){
response.status(200).send({ message :'성공했습니다'}); //success
});
});
# 화면단 list.ejs
<h2 class="ml-2 my-3">할일목록</h2>
<div class="container">
<ul class="list-group">
<!-- <li class="list-group-item active" aria-current="true">An active item</li> -->
<% for (let i=0; i < posts.length; i ++) { %>
<li class="list-group-item">
<p>글번호 : <%= posts[i]._id %></p>
<h4>
<%= posts[i].title %>
</h4>
<p>
<%= posts[i].date %>
</p>
<button class="delete" data-id="<%= posts[i]._id %>">삭제</button>
</li>
<% } %>
</ul>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
$('.delete').click(function (e) {
var postId = e.target.dataset.id;
var currentPost = $(this);
$.ajax({
method:'DELETE',
url: '/delete',
data :{_id:postId}
}).done(function(result){
currentPost.parent('li').fadeOut();
console.log(result.message);
}).fail(function(xhr,textStatus,errorThrown){
//실패시
console.log(xhr,textStatus,errorThrown);
});
})
</script>