안녕하세요
MongoDB - 회원기능 게시물 작성자만 삭제하기 본문
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(삭제 한개 함)
이 출력됩니다.
'스터디 > 코딩애플' 카테고리의 다른 글
MongoDB - 에러: Cannot set headers after they are sent to the client (0) | 2023.01.06 |
---|---|
MongoDB - 중복ID체크, ID/Password 유효성 검사 (0) | 2023.01.06 |
MongoDB - Search Index: 이진탐색으로 게시물 찾기 (0) | 2023.01.06 |
MongoDB - Query String 으로 검색기능 구현 (0) | 2023.01.06 |
MongoDB - env 환경변수로 가변적 데이터나 숨길 데이터 다루기 (0) | 2023.01.05 |