2019/11/15 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_likey (게시글/댓글/대댓글 좋아요 기능 라우터)
ㄴ 이전 글
현 시점 라우터 정리 1차 완료!
1번 (route_loader), 2번 (route_test) 는 그냥 테스트용이니 생략합니다.
* 현재까지 설명한 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 파일은 북마크 관련 라우터들을 정의한 파일입니다.
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)를 위한 라우터 상세 정보 입니다.
'띡딱똑띡 개발자 Hanna' 카테고리의 다른 글
NodeJS와 MongoDB로 SNS 만들어보기 - user_likey (게시글/댓글/대댓글 좋아요 기능 라우터) (0) | 2019.11.15 |
---|---|
NodeJS와 MongoDB로 SNS 만들어보기 - user_ment (댓글/대댓글 라우터) (0) | 2019.11.15 |
NodeJS와 MongoDB로 SNS 만들어보기 - user_postingPlus (게시글 라우터2) (0) | 2019.11.14 |
NodeJS와 MongoDB로 SNS 만들어보기 - user_posting (게시글 라우터) (0) | 2019.11.14 |
NodeJS와 MongoDB로 SNS 만들어보기 - user_follow (팔로우 라우터) (0) | 2019.11.14 |
댓글