본문 바로가기
띡딱똑띡 개발자 Hanna

NodeJS와 MongoDB로 SNS 만들어보기 - user_clip (게시글 북마크 기능 라우터)

by HannaDev 2019. 11. 16.

2019/11/15 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_likey (게시글/댓글/대댓글 좋아요 기능 라우터)

 

NodeJS와 MongoDB로 SNS 만들어보기 - user_likey (게시글/댓글/대댓글 좋아요 기능 라우터)

2019/11/15 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_ment (댓글/대댓글 라우터) NodeJS와 MongoDB로 SNS 만들어보기 - user_ment (댓글/대댓글 라우터) 2019/11/14 - [띡딱똑띡 개..

granora2019.tistory.com

ㄴ 이전 글

 

더보기

현 시점 라우터 정리 1차 완료!

1번 (route_loader), 2번 (route_test) 는 그냥 테스트용이니 생략합니다.

 


 

routes 폴더 구조


 

 

* 현재까지 설명한 router => 7번 (user_passport), 10번 (user_profile), 4번 (user_follow),

                                            8번 (user_posting), 9번 (user_postingPlus), 6번 (user_ment),

                                            5번 (user_likey)

 

* 현재 설명하고자 하는 router => 3번 (user_clip)

 

 

 

> user_clip

 

user_clip.js 파일 내의 라우터 목록

user_clip.js 파일은 북마크 관련 라우터들을 정의한 파일입니다.

1번 라우터는 좋아요와 마찬가지로 북마크 상태를 바꿔주는 라우터입니다.

북마크한 상태라면 북마크를 해제시키고, 하지 않은 상태라면 북마크 설정을 합니다.

 

 

/flipClip/:postId/:postWriter

 

> postId는 북마크 상태를 바꿀 게시글의 ObjectId입니다.

> postWriter북마크 상태를 바꿀 게시글 작성자의 ObjectId입니다.

 

해당 라우터에서 postWriter 값을 받는 이유는 기획과 관련이 있습니다.

기획 상 북마크를 한 게시글이 삭제되었을 경우, 해당 게시글의 작성자는

보여주되 "삭제된 게시글입니다." 라고 문구를 띄우기로 했기 때문입니다.

 

따라서 데이터 스키마 북마크 쪽을 보시면

 

isRemovedPost 라는 boolean 타입 속성이 있는데

해당 게시글이 삭제될 시 이 isRemovedPost 값을 true로

만들어 나중에 북마크 목록을 불러올 때, 해당 게시글 내용을

가져오기위한 게시글 테이블 접근을 하지 않고, 대신

"삭제된 게시글입니다."라는 문구를 띄우게 됩니다.

 

참고로 created_at 은 북마크한 시점으로

북마크 목록을 불러올 시 최근 북마크한

순서대로 가져오기 위해 있는 속성입니다.

 

 

 


1번 라우터는 좋아요와 같은 흐름이고

2번 라우터는 최근 게시글 목록 라우터와 같은 흐름이니

추가적인 설명은 생략하도록 하겠습니다.

 

 

* Router 상세 정보 *

더보기

GET    /flipClip/:postId/:postWriter

* 게시글 북마크 상태 변경

 

>> 필요 파라미터 (링크 뒤에 붙여서 보내주세요!) <<

{

  postId : 해당 게시글의 ObjectId

  postWriter : 해당 게시글 작성자의 ObjectId

}

 

> 에러 발생 시

{

  isClipPost: false (boolean),

  errorMsg: 에러 메세지 (String)

}

 

> 정상 작동 시

{

  isClipPost: true (boolean),

  status: 결과적으로 북마크 상태가 어떻게 된건지 (boolean)

}

 

 

 

POST    /getMyClips

* 북마크 목록 불러오기 (북마크한 시점을 기준으로 최신순)

 

>> 필요 파라미터 <<

{

  page : 페이지 번호

  ㄴ 첫 페이지인가 아니냐만 체크하긴 합니다.

  lastDate : 그 전 페이지 목록 마지막 꺼의 created_at

  ㄴ 첫 페이지인 경우 '0'으로 보내주세요!

}

 

> 에러 발생 시

{

  isGetPost: false (boolean),

  errorMsg: 에러 메세지 (String)

}

 

> 정상 작동 시

{

  isGetPost: true (boolean),

  posts: [ { _id: 게시글의 ObjectId (String),

            w_id: 작성자의 ObjectId (String),

            w_nickname: 작성자의 닉네임 (String),

            w_userName: 작성자의 아이디 (String),

            w_isBasicImg: 작성자의 프로필 이미지가 기본 프로필 이미지인지 (boolean),

            w_cloudUrl: 작성자의 프로필 이미지 Url, 기본 프로필 이미지면 null값 (String),

            like_count: 게시글에 눌린 좋아요 수 (int),

            comment_count: 게시글에 달린 코멘트(댓글+대댓글) 수 (int),

            title: 게시글의 제목 (String),

            text: 게시글의 내용 (String),

            created_at: 게시글의 작성일 (String),

            clip_at : 북마크된 시점

            isLike: 해당 게시글 좋아요 여부 (boolean)

           } ], <= 게시글 목록 리스트

  remainPage: 남은 페이지 수 (int),

  totalNum: 남은 목록 수 (int)

  ㄴ totalNum값이 0이면 더이상 조회할 데이터가 없는 상태인 것입니다.

}

 

 

ㄴ 프론트(Flutter)를 위한 라우터 상세 정보 입니다.

 

 

 

 

댓글