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

NodeJS와 MongoDB로 SNS 만들어보기 - user_postingPlus (게시글 라우터2)

by HannaDev 2019. 11. 14.

2019/11/14 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_posting (게시글 라우터)

 

NodeJS와 MongoDB로 SNS 만들어보기 - user_posting (게시글 라우터)

2019/11/14 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_follow (팔로우 라우터) NodeJS와 MongoDB로 SNS 만들어보기 - user_follow (팔로우 라우터) 2019/11/14 - [띡딱똑띡 개발자 H..

granora2019.tistory.com

ㄴ 이전 글

 

더보기

아니 근데 이거 언제 다 씀;;;

 


 

routes 폴더 구조


 

 

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

 

* 현재 설명하고자 하는 router => 9번 (user_postingPlus)

 

 

 

> user_postingPlus

 

user_postingPlus.js 파일 내 존재하는 라우터 목록

 

 

user_postingPlus.js는 게시글 관련 라우터들을 정의한 파일입니다.

 

2019/11/14 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_profile (프로필 라우터)

 

이전 포스트 (user_profile편)에서도 언급했듯이

Cloudinary에 이미지를 저장하고 있습니다.

 

따라서 1, 2번 라우터를 보면 동일한 게시글 작성 라우터지만,

post 파라미터로 image값이 오냐에 따라 나누었습니다.

 

현재 'multer-storage-cloudinary' 라는 모듈을 통해 파일을 처리하고

있기때문에 이미지 처리가 필요한 경우가 필요하지 않은 경우로 나눠 처리하고 있습니다.

(Cloudinary 함수 관련해서는 라우터 목록 설명 후 따로 포스팅을 하겠습니다.)

 

 

현재 1번 라우터는 작업 중에 있습니다. (11/14 - 다중 이미지 처리 공부 중)

참고로 어제 밤 회의에서 정해진 내용인데 이미지 순서랑 대표이미지 설정을

수정 가능하게 할 예정이라 부지런히 코딩해야 합니다...ㅎ  ( ( 어떻게든 되겠지 ) )

 


function_posting.js 파일 내 함수 목록

 

enum 활용 및 exports를 사용한 모듈화

 

posting 라우터에서도 마찬가지로 UPDATETYPE (enum값)을 활용하여 updatedPost 함수를 진행합니다.

나중을 위해 공개 여부, 댓글 알림 설정 수정 / 태그 수정 기능도 넣어놨습니다.

하지만 일단 현재 사용되고 있는건 UPDATETYPE.Update (제목, 글 Text 수정) 부분만이긴 합니다.

 

 

 

findOneAndUpdate 함수 사용시 $inc 설정

그러고보니 count값을 +1시키거나 -1시키고 싶을 때는

"$inc" 키워드를 사용하면 됩니다. 위와 같이 해당 숫자만큼 더해집니다.

(뺄셈 키워드는 없으니 "$inc" 키워드와 음수값을 활용하세요.)

 

그리고 options도 찾아보면 다양한 기능이 있으니 한번쯤 살펴보시면 좋을 것 같습니다.

"runValidators" 키워드는 스키마 정의 시 설정해놓은 Validator를 update 시에도 체크하게

할건지 선택하는건데 위의 코드에선 딱히 안넣어도 상관없습니다. (count관련 validator는 설정안해서)

 

하지만 text 수정같은 경우에는 제목, 게시글 내용의 최대 글자수를 설정해놨으므로

"runValidators" 를 true로 설정하여 수정 시에도 글자수 체크 validator가 실행되게해야 합니다.

(default가 false이기 때문에 true 설정을 수동으로 해야함.)

 


 

 

* Router 상세 정보 *

더보기

POST    /createPostPlus

* 게시글 작성 (+ 다중 이미지 처리)

* 아직 작업 중

 

>> 필요 파라미터 <<

{

  --- 작업중 ---

}

 

 

> 에러 발생 시

{

  isPost: false (boolean),

  errorMsg: 에러 메세지 (String)

}

 

> 정상 작동 시

{

  isPost: true (boolean)

}

 

 

 

 

 

POST    /createPost

* 게시글 작성 (이미지 없는 경우)

 

>> 필요 파라미터 <<

{

  title: 제목 (String),

  ㄴ 1자~50자여야 합니다. (trim적용 O)

  text: 내용 (String),

  ㄴ 최대 2000까지 작성 가능합니다. (trim적용 X)

}

 

 

> 에러 발생 시

{

  isPost: false (boolean),

  errorMsg: 에러 메세지 (String)

}

 

> 정상 작동 시

{

  isPost: true (boolean)

}

 

 

 

 

 

POST     /updatePost

* 게시글 수정 (제목, 글)

 

>> 필요 파라미터 <<

{

  postId: 수정하고자 하는 게시글의 ObjectId (String),

  title: 제목 (String),

  ㄴ 1자~50자여야 합니다. (trim적용 O)

  text: 내용 (String),

  ㄴ 최대 2000까지 작성 가능합니다. (trim적용 X)

}

 

> 에러 발생 시

{

  isUpdatePost: false (boolean),

  errorMsg: 에러 메세지 (String)

}

 

> 정상 작동 시

{

  isUpdatePost: true(boolean),

}

 

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

 

 

 

 

 

 

 

 

 

댓글