반응형
backend단 진행
1) 라우터 설정
2) 데이터 삭제 모듈 추가
frontend단 진행
1) 상세페이지 삭제 버튼 및 함수 추가
먼저 backend단 진행
라우터를 설정한다.
파일경로 : back/routes/api/board/index.js
const router = require('express').Router();
const dao = require('./dao');
router.get("/",dao.list);
router.get('/:num',dao.view);
router.post("/",dao.add);
router.put('/',dao.mod);
router.put('/',dao.delete); //삭제 모듈 추가
router.all('*',(req, res)=> {
res.status(404).send({success:false, msg:'board unknown uri ${req.path}'});
})
module.exports = router;
데이터 삭제 모듈 추가
파일경로 : back/routes/api/board/dao.js
----------------생략---------------------
exports.delete = (req, res) => {
body = req.query;
sql = " DELETE FROM tb_board WHERE num = ? ";
dbcon.query(sql,[body.num],(err,result) => {
if(err) throw err;
res.send({success:true,result:result});
})
}
frontend단 진행
버튼 및 함수 추가
파일경로 : front/src/compoents/board/View.vue
<template>
...생략
<div class="btnWrap">
<a href="javascript:;" @click="fnList" class="btn">목록</a>
<a href="javascript:;" @click="fnMod" class="btnAdd btn">수정</a>
<a v-if="num" href="javascript:;" @click="fnDeleteProc" class="btnDelete btn">삭제</a>
</div>
...생략
</template>
<script>
....생략
methods:{
,fnDeleteProc() {
if(confirm("삭제하시겠습니까?")) {
this.$axios.delete('http://localhost:3000/api/board',{params:this.body})
.then((res)=>{
if(res.data.result) {
alert("삭제되었습니다.");
this.fnList();
} else {
alert("실행중 실패했습니다.\n다시 이용해 주세요.");
}
})
.catch((err)=>{
console.log(err);
})
}
}
}
</script>
상세화면에서 삭제기능 확인
반응형
'IT > vue' 카테고리의 다른 글
vuejs 게시판 만들기 #9 (수정하기) (3) | 2020.06.22 |
---|---|
vuejs 게시판 만들기 #8 (상세페이지) (0) | 2020.06.22 |
vuejs 게시판 만들기 #7 (리스트 화면) (2) | 2020.06.22 |
vuejs 게시판 만들기 #6 (등록 화면 및 데이터 저장 프로세스) (2) | 2020.06.19 |
vuejs 게시판 만들기 #5 (axios 사용해서 데이터를 가져오자) (1) | 2020.06.19 |