Skip to content

won-N-only/jungle-express

Repository files navigation

Express 과제

💡 목표 : CRUD, 회원가입, 로그인 기능을 포함한 백엔드 서버 만들기

  • express 기반으로 CRUD(Create, Read, Update, Delete) 기능이 포함된 RESTful한 API를 만들어 보자

  • 구현 사항

    • 게시글

      1. 전체 게시글 목록 조회 (/POST, GET)
          - 제목, 작성자명(nickname), 작성 날짜를 조회하기
          - 작성 날짜 기준으로 내림차순 정렬하기
            
      2. 게시글 작성 (/POST, POST)
          - 토큰을 검사하여, 유효한 토큰일 경우에만 게시글 작성 가능
          - 제목, 작성 내용을 입력하기
            
      4. 게시글 조회 (/POST/:query, GET)
          - 제목, 작성자명(nickname), 작성 날짜, 작성 내용을 조회하기 
      
      5. 게시글 수정 (/POST, PATCH)
          - 토큰을 검사하여, 해당 사용자가 작성한 게시글만 수정 가능
            
      6. 게시글 삭제 (/POST, DELETE)
          - 토큰을 검사하여, 해당 사용자가 작성한 게시글만 삭제 가능
      
    • 댓글

      1. 댓글 목록 조회 (/COMMENT, GET)
          - 조회하는 게시글에 작성된 모든 댓글을 목록 형식으로 볼 수 있도록 하기
          - 작성 날짜 기준으로 내림차순 정렬하기
            
      2. 댓글 작성 (/COMMENT, POST)
          - 로그인 토큰을 검사하여, 유효한 토큰일 경우에만 댓글 작성 가능
          - 댓글 내용을 비워둔 채 댓글 작성 API를 호출하면 "댓글 내용을 입력해주세요" 라는 메세지를 return하기
          - 댓글 내용을 입력하고 댓글 작성 API를 호출한 경우 작성한 댓글을 추가하기
            
      3. 댓글 수정 (/COMMENT, PATCH)
          - 로그인 토큰을 검사하여, 해당 사용자가 작성한 댓글만 수정 가능
          - 댓글 내용을 비워둔 채 댓글 수정 API를 호출하면 "댓글 내용을 입력해주세요" 라는 메세지를 return하기
          - 댓글 내용을 입력하고 댓글 수정 API를 호출한 경우 작성한 댓글을 수정하기
            
      4. 댓글 삭제(/COMMENT, DELETE)
          - 로그인 토큰을 검사하여, 해당 사용자가 작성한 댓글만 삭제 가능
          - 원하는 댓글을 삭제하기
      
    • 회원가입 / 로그인

      1. 회원 가입 API (/JOIN, POST)
          - 닉네임, 비밀번호, 비밀번호 확인을 request에서 전달받기
          - 닉네임은 `최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)`로 구성하기
          - 비밀번호는 `최소 4자 이상이며, 닉네임과 같은 값이 포함된 경우 회원가입에 실패`로 만들기
      
          - 비밀번호 확인은 비밀번호와 정확하게 일치하기
          - 데이터베이스에 존재하는 닉네임을 입력한 채 회원가입 버튼을 누른 경우
            "중복된 닉네임입니다." 라는 에러메세지를 response에 포함하기
      
      2. 로그인 API (/AUTH, POST)
          - 닉네임, 비밀번호를  request 에서 전달받기
          - 로그인 버튼을 누른 경우 닉네임과 비밀번호가 데이터베이스에 등록됐는지 확인한 뒤,
            하나라도 맞지 않는 정보가 있다면 "닉네임 또는 패스워드를 확인해주세요."라는 에러 메세지를 response에 포함하기
          - 로그인 성공 시, 로그인에 성공한 유저의 정보를 JWT를 활용하여 클라이언트에게 Cookie로 전달하기
          - 비밀번호를 bcrypt로 암호화해서 저장해보기
      
      • swagger 적용 ERD
      • image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published