일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Matrix Factorization
- 어렵다
- 대학원일기
- 컴퓨터비전
- Github
- level3
- androidstudio
- git
- LEVEL2
- py
- WebOS
- SWEA
- 내휴학생활중의아주큰일
- Python
- 안드로이드스튜디오
- level1
- 파이썬
- D3
- 컨트리뷰톤
- BFS
- MSBuild
- 휴학
- 자바
- level4
- 대학원
- SQL
- 다시풀기
- build
- java
- 프로그래머스
- Today
- Total
bit가 눈 앞에서 왔다갔다
Controller 분리 본문
우리 프로젝트는 MVC 패턴*을 따르고 있다. 따라서 router와 controller의 분리가 필요함.
(* Model View Controller)
Router는 도메인으로 요청이 들어왔을때, 클라이언트 해당 요청 연결하는 역할을 한다.
요청에 해당하는 기능을 수행하는 부분 -> Controller (콜백함수 - 컨트롤러 기능을 가짐)
router.get("/login", (req, res) => { //"/login"이 도메인
res.render("home/login"); // 기능 수행 - (req, res) 부터 밑 함수까지 => 컨트롤러
});
목표는 router에서 controller를 분리
본 프로젝트로 돌아와서,
같이 백엔드 맡은 친구가 index.js를 만들어 줬다. 내 역할은 user 컨트롤러의 함수들을 만드는 것.
*routes/User/index.js
var express = require('express')
var router = express.Router()
const UserController = require('../controllers/User/controller.js')
// 2번 - 컨트롤러를 가져오기 위한 부분
// 1번
router.post('/user',UserController.createUser) // 유저 생성
router.get('/user/:id', UserController.getUser) // tokenID로 유저 정보 가져오기
router.patch('/user/:id', UserController.updateUser) // 유저 닉네임 수정 OR 유저 삭제
module.exports = router //라우터 모듈화
(작성에 필요한 부분만 긁어옴)
router는 첫번째 코드 블럭과 같은 모양이었는데, controller를 분리해주기 위해 //1번 주석 아래와 같은 모양으로 코드를 정리한 것이다.
controllers/User 디렉토리의 controller.js에 넘어가서 createUser, getUser, updateUser를 구현하면 된다.
//1번을 보면 UserController.~~ 이런식으로 되어있고, UserController를 require로 controllers/User/controller.js을 사용하고 있다.
이렇게 하면 모듈화 해서 사용하는 것으로, .을 붙임으로써 명시화 된 것이다.
(잘했어 친구야)
*controllers/User/controller.js
//User Controller
// 'use strict'
const createUser = () => {
};
const getUser = () => {
};
const updateUser = () => {
};
module.exports = { //밖에서 오브젝트 사용할 수 있도록 module로 밖에 빼줌
createUser,
getUser,
updateUser
}
createUser, getUser, updateUser를 구현하려고 일단 모양을 잡아 뒀다.
module.exports는 모듈화 해서 밖으로 오브젝트를 빼주는 코드이다.
오브젝트를 바깥으로 빼줘야 만든 것들을 쓸 수 있다.
오브젝트는 원래 { key : value}의 모양으로 이루어졌지만, value를 생략하면 자체적으로 key와 같은 값으로 적용한다.
그래서 사실 코드는
createUser: createUser 이런 모양으로 되어있는 것이다.
글을 더 이어나가고 싶었으나.. 개발 잘 하고 있는데 블루스크린 떠서.. 일단 여기까지,, 블루스크린 개오랜만에 본다 진짜.. 왜지ㅠㅠ
*ref
https://www.youtube.com/watch?v=KwCjYdYv0_s&t=21s
'대외활동 > 옷장 앱 Project_Clip' 카테고리의 다른 글
Controller (0) | 2021.10.04 |
---|---|
API / REST (0) | 2021.10.03 |
RN) npm install (0) | 2021.09.04 |
옷장 앱 Clip (0) | 2021.09.04 |