개인과제(게시판,댓글CRUD구현)
[내일배움캠프] 개인 과제 게시판/댓글 CRUD기능 구현하기-U/D-
김민커
2023. 6. 16. 19:14
//게시글 데이터 수정//
router.put("/posts/:id", async (req, res) => {
id = req.params.id;
//body에서 데이터 받음//
const { content, password } = req.body;
//url의 title이 있는지 확인//
const [existsPost] = await Post.find({ _id: Object(id) });
//url의 title이 존재한다면 if구문 없다면 else로//
if (existsPost) {
//데이터를 작성했는지 확인//
if (content) {
//비밀번호를 제대로 작성했는지 확인//
if (existsPost.password != password) {
return res.status(400).json({ message: "데이터형식을 확인해주세요" })
} else {
await Post.updateOne({ _id: Object(id) }, { $set: { content } })
}
} else { return res.status(400).json({ message: "데이터형식을 확인해주세요" }) }
} else { return res.status(400).json({ message: "게시글 조회에 실패했습니다." }) }
res.json({ message: "게시글을 수정하였습니다." })
})
routes/post.js의 게시글 데이터 수정 부분이다.
수정을 하기 위한 조건을 만들기 위해서 기존에 저장한 password 데이터와 생성된 오브젝트의 id를 사용했다.수정하기 위해 입력한 password와 저장된 password의 비교를 통해서 수정기능을 작동시킨다.수정은 updateOne({ _id: Object(id) }, { $set: { content } })으로 _id: Object(id)랑 데이터를 가지고 있는 db 데이터의 { content } 부분을 수정한다.
router.delete("/posts/:id", async (req, res) => {
id = req.params.id;
//body에서 데이터 받음//
const { password } = req.body;
//url의 title이 있는지 확인//
const [existsPost] = await Post.find({ _id: Object(id) });
//url의 title이 없다면 else로 있다면 if구문//
if (existsPost) {
//비밀번호를 제대로 작성했는지 확인//
if (existsPost.password != password) {
return res.status(400).json({ message: "데이터형식을 확인해주세요" })
} else { await Post.deleteOne({ _id: Object(id) }) }
} else { return res.status(400).json({ message: "게시글 조회에 실패했습니다." }) }
res.json({ message: "게시글을 삭제해였습니다." });
})
routes/post.js의 게시글 데이터 삭제 부분이다.
기본적으로 수정과 똑같다. deleteOne으로 삭제기능을 구현했다.