-
Ajax Delete 예제MEAN STACK/Express 2018. 9. 11. 10:42
지금까지 프로그램은 서버에서 요청 후 결과 페이지까지 지정해줬다. 하지만 AJAX 요청을 이용해 요청의 결과에 따른 페이지 제어를 클라이언트에서도 할 수 있다. 이때 location.href를 사용한다.
$("#deleteBtn").click(function(){ $.ajax({ url: '/memo/<%= selectedItem.id %>', method: "DELETE", }).done(function(response){ location.href = "/"; }); });
deleteBtn 을 id로 가지고 있는 태그 클릭시 .ajax 명령어 통해 요청을 보낸다. method를 DELETE로 정하면 Express에서는 delete에 해당하는 메소드 중 일치하는 url 패턴을 찾아 수행한다. 중요한건 done 메소드의 위치. ajax 메소드 통해 요청 완료되면 그 결과를 받아와 이후 작업을 수행한다고 이해하면 된다.
const app = express(); app.delete('/memo/:id', function(request, response){ let id = request.params.id; items.splice(id, 1); remakeItems(id); //response.redirect('/memo'); response.send(true); }); app.get('/memo/:id', function(request, response){ let id = request.params.id; const item = items[id]; fs.readFile('ejs/memo.ejs', 'utf8', function(err, data){ response.type('text/html'); response.send(ejs.render(data, { selectedItem : item, items : items })); }); });
Express에 등록해 둔 메소드를 찾아 수행 후 결과 response.send에 보낸다. 크게 다른 것은 없다.
글 찾아 삭제 버튼 누르면
인덱스 페이지로 이동한다. memo/0 으로 url 요청하면
다음과 같이 get 요청에 해당하는 결과가 수행된다.
이렇게 하면 data에 접근하는 url(delete, put)들을 get과 같은 url로 지정 가능해 사용자가 요청할 수 없도록 해 보안 또한 강화할 수 있다.'MEAN STACK > Express' 카테고리의 다른 글
Node.js Express jQuery 사용법 (0) 2018.09.11 노드js(Node.js) multipart/form-data 인코딩 지원 모듈 Connect-multiparty (0) 2018.09.11 노드js(Node.js) Express-Session (0) 2018.09.11 노드js(Node.js) 바디 파서(Body parser) (0) 2018.09.11 노드js (Node.js) Express 쿠키 파서(Cookie Parser) (0) 2018.09.11