정말 중요한 API 공부하기
왜 이렇게 코드를 작성했는지랑 어떻게 동작하는지 원리를 파악하고 습득하는 시간 필요
오늘 확인할 API
검색 API [완료]
게시글 작성 API
댓글 API [완료]
검색 API 고찰(어떤것을 깊이 생각하고 연구함) 내용
router.get('/search',async(req,res)=> {
try {
// 찾고자하는 게시글을 쿼리를 통해서 찾겠다
const {keyword} = req.query
let posts = await Post.find({postTitle: { $regex:keyword, $options:"i" }.sort({
postDate:-1,
})
$regex 는 일치하는 데이터를 찾는 MongoDB 정규표현식이다.
$options :”i”는 대소문자를 구분하지않고 찾겠다는 표현이다
댓글 API 고찰 내용
router.post('/comments',authMiddleware,async(req,res)=> {
try {
//작성한 게시글에 댓글을 작성하는것이므로 게시글을 구분할 목적으로 작성함
const {postNum} = req.query
const {contents} = req.body
const {userId} = res.loacls.user
const commentDate = new Date()
// 작성한 댓글마다 구분할수있게끔 commentNum를 만들기위해서 작성하였음
const maxCommentNum = await Comment.findOne({}).sort("-commentNum")
let commentNum = maxCommentNum.commentNum + 1
//Post를 업데이트를 해줘야지 게시글에 댓글이 달린건지 아닌지를 알수있음
await Post.updateOne({postNum})
//Schemas에서 필수적으로 저장해야하는 데이터들
await Comment.create({contents,commentDate,postNum,userId,commentNum})
res.status(200).json({result:true,msg:"댓글 작성 성공"})
}catch (error) {
console.log(error)
//무언가 잘못되었을때 이런 콘솔을 입력하면 바로바로 찾아서 수정이 가능하므로
//앞으로 API작성할때 콘솔을 찍는 습관을 들여야함
console.log('comments.js 댓글 작성 -> 여기서 에러발생함)
res.status(400).json({result:false,msg:"댓글 작성 실패"})
}
}
댓글 수정
router.put('/comments',authMiddleware,async(req,res)=> {
try {
const {commentNum} = req.query
const {contents} = req.body
const {userId} = res.locals.user
await Post.updateOne({postNum})
await Comment.updateOne({content,commentNum,userId})
res.status(200).json({result:true,msg:"댓글 수정 성공"})
}catch(error) {
console.log(error)
console.log("comments.js 댓글 수정 -> 여기서 에러 발생함")
res.status(400).json({result:false,msg:"댓글 수정 실패"})
}
}
댓글 삭제
router.delete('/comments',authMiddleware,async(req,res)=> {
try {
const {commentNum} = req.query
const commentpostNum = await Comment.findOne({commentNum})
await Post.updateOne({postNum:commentpostNum.postNum},{$inc:{postCommentNum:-1}})
await Comment.deleteOne({commentNum})
res.status(200).json({result:true,msg:"댓글 삭제 성공"})
}catch (error) {
console.log(error)
console.log('comments.js 댓글 삭제 -> 여기서 에러발생함)
res.status(400).json({result:false,msg:"댓글 삭제 실패"})
}
}