라우터와 컨트롤러

컨트롤러

컨트롤러 를 알아보기 전에 잠깐 라우터 에 대해 알아봅시다. 라우터는 실질적으로 라우트 를 할 수 있도록 도와주는 클래스입니다. 길을 만들어주는 친구죠.
라우터를 사용할 때, 해당 라우트에 관한 콜백함수 작성하는데, 이를 클래스화 화여 별도로 분리해 놓은 것이 컨트롤러 입니다. 또한 모델(Model) 에 접근하여 데이터베이스에 저장된 데이터를 불러오거나, 출력하는 등의 기능을 수행합니다. 다음과 같이 라우터가 작성되어 있다고 가정합니다.
routes/config/user/* index.js */

const trickr = require('trickr');
const router = new trickr.Router();

router.post('/user/create', function () {
  // ...
});
router.get('/user/list', '#td-userList-wrapper', function() {
  // ...
});

module.exports = router;
/user/create, /user/list 라우트에 작성된 콜백함수를 컨트롤러로 분리합니다.
routes/controllers/* user.js */

class UserController {
  static create() {
    // ...
  }
  static list() {
    // ...
  }
}

module.exports = UserController;
이렇게 분리시킨 컨트롤러를 라우터에 적용시킵니다. 이렇게하면 로직라우터 를 완전히 분리할 수 있어 효과적으로 구성할 수 있습니다.
routes/config/user/* index.js */

//...
const UserController = require('@controllers/user');

router.post('/user/create', UserController.create);
router.get('/user/list', '#td-userList-wrapper', UserController.list);