route-controller-model이란

route란, 네트워크에서 통신 데이터를 보낼 경로를 의미
적절한 controller로 전달하는 기능을 한다
controller란, 사용자가 요청한 웹 페이지를 서비스하기 위해 모델을 호출하는 것이다.
모델에서 요청된 데이터를 가져오고, 데이터를 표시하는 페이지를 만들거나, 사용자에게 보내 브라우저에서 볼 수 있게 한다.
model이란, 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 결과를 반환
현재 community는 게시글 작성/수정/삭제, 댓글 작성/수정/삭제, 유저 등록/수정/삭제의 기능을 한다.
해당 프로젝트에서 필요한 route, controller, model, data는 다음과 같다.
| route | controller | model | data | |
|---|---|---|---|---|
| 유저 | userRouter | userController | userModel | users.js |
| 게시글 | postRouter | postController | postModel | posts.js |
| 댓글 | commentRouter | commentController | commentModal | comments.js |
| 게시글이미지 | postImageRouter | - | - | - |
| 프로필이미지 | profileImageRouter | - | - | - |
const apiRouter = express.Router();
apiRouter.use("/users", userRouter);
apiRouter.use("/posts", postRouter);
apiRouter.use("/posts", commentRouter);
필요한 기능을 정리해보자
| 기능 | 설명 | 주소 | controller |
|---|---|---|---|
| GET | 전체 유저 정보 | /users | getUsers |
| GET | 현재 로그인한 유저 정보 | /users/user | getUser |
| GET | 로그인 | /users/logIn | logInUser |
| POST | 회원 가입 | /users/signUp | addUser |
| POST | 이메일 중복 체크 | /users/email/:email | duplicateEmail |
| POST | 닉네임 중복 체크 | /users/nickname/:nickname | duplicateNickname |
| POST | 로그아웃 | /users/logOut | logOut |
| PATCH | 회원정보 변경 | /users/user/profile | updateUserProfile |
| PATCH | 비밀번호 변경 | /users/user/password | updateUserpassword |
| DELETE | 회원 탈퇴 | /users/user | deleteUser |
필요한 기능을 정리해보자
| 기능 | 설명 | 주소 | controller |
|---|---|---|---|
| GET | 게시물 목록 | /posts | getPosts |
| GET | 게시물 상세 | /posts/:id | getPost |
| POST | 게시물 작성 | /posts | addPost |
| PATCH | 게시물 수정 | /posts/:id | updatePost |
| DELETE | 게시물 삭제 | /posts/:id | deletePost |
필요한 기능을 정리해보자
| 기능 | 설명 | 주소 | controller |
|---|---|---|---|
| GET | 댓글 목록 | /posts/:postId/comments | getComments |
| POST | 댓글 작성 | /posts/:postId/comments | addComment |
| PATCH | 댓글 수정 | /posts/:postId/comments/:commentId | updateComment |
| DELETE | 댓글 삭제 | /posts/:postId/comments/:commentId | deleteComment |