- Express, JWT, Sequelize, mysql, joi, docker, postman, cookie-session
- 예외처리
- http method에 맞는 http Status code 변환하기
- 에러메세지 처리하기
- 권한기능
- [x] 글쓰기 권한 (로그인 한 사람만 작성가능)
- [x] 이미 로그인 한 사람의 다시 페이지 또는 회원가입한 페이지에 접속할 경우 에러메세지
- [x] 글쓰기 권한이 가지고 있는 사람은 글은 조회는 가능하나 수정, 삭제는 불가능
- [ ] 관리자 권한을 가지고 있는 사람은 아무거나 글 수정, 삭제 가능
- [x] 로그인 하지 않은 사람
- 로그인 처리
- [ ] 닉네임은 `최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)`로 구성하기
- [ ] 비밀번호는 `최소 4자 이상이며, 닉네임과 같은 값이 포함된 경우 회원가입에 실패`로 만들기
- [ ] 비밀번호 확인은 비밀번호와 정확하게 일치하기
- 이미지 업로드 삭제
- CORS 처리
- [x] JWT인증 방식 연습 완료
- [x] DB Models 작업 완료
- [x] 첫째주 express를 이용한 router 이용 방법 완료
- [x] cookie-seesion 설정 및 사용자 상태
- [x] cookie-session middle ware를 기존 라우터에 연결
- [x] fetchList 부분 원하는 데이터만 가져오기가 안됨 (attributes, include)
- [x] 좋아요 기능 추가
- [x] 로그인 Authentication middleware 처리
- [x] refactoring 을 해서 좀서 알아보기 쉽게 가독성을 높혀야함
- [x] MVC 패턴으로 나름대로 짜봤는데 맞는지 모르겠음
- [x] Primary key, Forigner key 설정 방법
- [x] sequelize 구조에 대한 이해 부족
-
회원 가입 페이지
- 닉네임은
최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)
로 구성하기 - 비밀번호는
최소 4자 이상이며, 닉네임과 같은 값이 포함된 경우 회원가입에 실패
로 만들기 - 비밀번호 확인은 비밀번호와 정확하게 일치하기
- 닉네임은
-
로그인 페이지
- 로그인 버튼을 누른 경우 닉네임과 비밀번호가 데이터베이스에 등록됐는지 확인한 뒤, 하나라도 맞지 않는 정보가 있다면 "닉네임 또는 패스워드를 확인해주세요"라는 메세지를 프론트엔드에서 띄워줄 수 있도록 예외처리 하기
-
로그인 검사
- 로그인 하지 않은 사용자도, 게시글 목록 조회는 가능하도록 하기
- 로그인하지 않은 사용자가 좋아요 버튼을 눌렀을 경우, "로그인이 필요합니다." 라는 메세지를 프론트엔드에서 띄워줄 수 있도록 예외처리 하기
- 로그인 한 사용자가 로그인 페이지 또는 회원가입 페이지에 접속한 경우 "이미 로그인이 되어있습니다."라는 메세지로 예외처리하기
- 로그인을 한 사용자만 글쓰기 권한이 존재함
-
예외 처리상황과 Http Method에 맞는 Http Status Code 반환하기
- 본인이 선택한 Status Code의 반환 이유를 설명하기
- 회원 가입 페이지, 로그인 페이지, 로그인 검사 기능
-
CORS 해결하기
- CORS란 무엇이며, 어떤 상황에서 일어나는지 / 어떻게 해결하는지 알아보고, 프로젝트에 적용하기
-
관리자 권한
- 권한을 추가하여 관리자 계정 로그인 시 모든 게시글, 댓글을 삭제할 수 있도록 구현하기
- require 부분도 정리할 수 있다. ( 원영님 소스코드 참조)
- Joi 사용법
- express.json() 을 미들웨어로 넣어야지 postman에서 application/json타입으로 받을때 정상적으로 받아진다
- join이 완료되어 있는 상태에서 user -< post 테이블 관계에서 user에 DB가 없으면 에러 발생 서버가 죽는다. 예외처리를 해야함
- sequelize 에서 define 메소드의 validate부분에 대해서 알게되었다. 간단하게 예외처리하기에는 나쁘지 않았지만, Joi가 모듈로나 예외처리 부분이 더 깔끔하다는 생각이 든다.
```
|- practice <정삭제예정>
|- docs
|- src
| |- models
| |- controllers
| |- router
| |- service
|- utils
|- app.js
```
- [링크](/docs/HTTPCODE.MD)