Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 도커
- Docker Swarm
- PaaS
- IaaS
- node.js
- 쿠버네티스
- Javascript
- 클라우드
- MongoDB
- docker
- git
- nodejs
- worker
- gns3
- network
- 이론
- 명령어
- kubernetes
- Docker-compose
- 실습
- 네트워크
- 용어정리
- mysql
- 개념
- RAID
- OpenStack
- RAPA
- express
- dockerfile
- PAT
Archives
- Today
- Total
융융이'Blog
Nodejs, express, MongDB를 이용한 CRUD(5)_Controller_comment.js 본문
Comment.js
module.exports = {
//게시물에 댓글 작성하기
create: async (req, res) => {
const { user } = req.body;
let comment = new Comment({
content : req.body.content,
board : req.params.board_id,
user : user,
});
result = await comment.save();
return res.json(result);
},
//게시판에 해당하는 댓글 모두 불러오기
read: async (req, res) =>{
const result = await Comment.find({board: req.params.board_id})
.populate('user', 'name')
.populate('re_comment');
return res.json(result);
},
//특정 댓글 수정하기(해당 유저인지 확인 추가 할것)
update: async (req, res) =>{
let comment = await commnet.findById(req.params.commnet_id);
comment.content = req.params.content;
const result = comment.save();
return res.json(result);
},
//특정 댓글 삭제하기
delete: async (req, res) =>{
const comment = await Comment.findById(req.params.comment_id);
console.log(comment);
//특정 댓글에 대댓글이 없을 때
if(comment.re_comments.length === 0){
console.log("단일 삭제");
await Comment.findByIdAndDelete(comment);
}
//특정 댓글에 대댓글이 있을 때
else{
console.log("대댓글 있져욤");
comment.content = "삭제가 되었습니다."
await comment.save();
}
return res.json({message: true});
},
//특정 댓글에 대댓글 달기
re_comment: async (req, res) => {
const comment = new Comment({
content : req.body.content,
user : req.body.user,
parent_comment : req.params.comment_id
});
const result = await comment.save();
return res.json(result);
}
}
대댓글!
여기서 따로 처리해야할 것은 댓글 삭제 시를 고려를 해야한다. 우리가 평소에 댓글을 삭제할 때 대댓글이 있을 때와 없을 때가 다를 때가 있다. (글쓴이는 대댓글이 달리면 원본 댓글을 삭제하면 댓글의 내용이 삭제되었다라고 바뀌고 대댓글이 없는 경우 그냥 댓글이 삭제되는 것을 확인 할 수 있었다.)
그래서 댓글의 삭제할 때 대댓글이 달렸는데 안달렸는 확인한 후 대댓글이 달린경우 원본 댓글의 내용만 '삭제되었습니다' 로 바꿔줬습니다.
'2022이전 > node.js' 카테고리의 다른 글
Nodejs, express, MongDB를 이용한 CRUD(7)_미들웨어 (0) | 2020.01.12 |
---|---|
Nodejs, express, MongDB를 이용한 CRUD(6)_Controller_like.js (0) | 2020.01.12 |
Nodejs, express, MongDB를 이용한 CRUD(4)_Controller_board.js (0) | 2020.01.12 |
Nodejs, express, MongDB를 이용한 CRUD(3)_Controller_user.js (0) | 2020.01.12 |
Nodejs, express, MongDB를 이용한 CRUD(2)_모델링 (0) | 2020.01.12 |