스터디/코딩애플
MongoDB - 회원기능 게시물 작성자만 삭제하기
sakuraop
2023. 1. 6. 21:38
1. 게시물을 작성한 사람이 누구라는 표시를 남깁니다.
app.post("/add", (요청, 응답) => {
응답.send(`/add로 POST 전송 성공했다.`);
응답.send(`/add로 POST 전송 성공했다.`);
db.collection("counter").findOne({ name: "게시물수" }, (에러, 결과) => {
const 총게시물갯수 = 결과.totalPost;
const 저장할데이터 = { _id: 총게시물갯수, 작성자: 요청.user._id, 제목: 요청.body.title, 날짜: 요청.body.date };
db.collection("post").insertOne(저장할데이터, (에러, 결과) => {
db.collection("counter").updateOne({ name: "게시물수" }, { $inc: { totalPost: 1 } }, (에러, 결과) => {});
});
});
});
=> 고유한 id를 남기면 좋겠죠
2. 삭제할 데이터가 존재하면 삭제하고, 아니면 삭제하지 않습니다.
삭제할 사람의 id와 일치하는지 검사를 하는 것이 아니라,
delete 기능에서 삭제할 데이터에 { 작성자: 요청.user._id } 를 추가하여
선택한 게시글( _id: 요청.body._id )과 { 작성자: 요청.user._id } 를 데이터에서 찾고, 찾은 것이 있으면 삭제합니다.
app.delete("/delete", (요청, 응답) => {
요청.body._id = parseInt(요청.body._id);
const 삭제할데이터 = { _id: 요청.body._id, 작성자: 요청.user._id };
db.collection("post").deleteOne(삭제할데이터, (에러, 결과) => {
if (결과) return console.log(결과.deleteCount, "결과");
응답.status(200).send({ message: "성공했습니다." });
});
});
=> 삭제 결과를 출력해보면
if (결과) return console.log(결과.deleteCount, "결과");
deleteCount: 0(삭제한 것이 없음) 또는
deleteCount: 1(삭제 한개 함)
이 출력됩니다.