2016-07-31 3 views
0

ExpressJS, 경로 정의, 컨트롤러의 위치와 API 문서

내가 이전에 내 경로 이런 식으로 정의 된

:

/** 
* @api {get} /users/:userId Get a user 
* @apiName GetUser 
* @apiGroup User 
* 
* @apiParam {Integer} userId Users unique ID. 
* 
* @apiSuccess (Success 201) {text} User email 
* @apiError {text} 401/Unauthorized. 
* @apiError {text} 404/Not Foud Unknown userId 
*/ 
router.get('/users/:userId', function(req, res, next) { 
    const userId = req.params.userId; 
    //get user 
    res.json(user); 
} 

내가 올바른 방법이었다 발견을 때문에 그것을 할 수 있습니다 :

  • 당신은 경로 정의 위의 경로 문서를 쓰기
    • 당신이 경로를 수정하는 경우, 당신은
  • 당신은 컨트롤러 위의 경로 문서가 문서를 수정
    • URL의 PARAMS/본문 내용 (req.params.name // req.body.name)
    • HTTP 오류 코드는 webstorm 사용처럼 자동 완성
에 대한 그 의견을
  • IDE를 반환

    class UserController { 
        constructor() { 
         this.listAll = this.listAll.bind(this); 
        } 
        getUser(req, res, next) { 
         const userId = req.params.userId; 
         //get user... 
         res.json(user); 
        } 
    } 
    router.get('/users/, UserController.getUser); 
    

    나는 조직이 방법을 볼 수있는 유일한 이유 : 최상의 방법을 찾고

    , 나는 다음과 같은 코드로 끝나는, 나는 컨트롤러를 만들고 다른 경로 (고화질)을해야 여러 번 들었다 두 가지 도로가 동일한 물건을 사용하는 경우 동일한 컨트롤러를 사용하도록 할 수 있습니다.

    • 내 컨트롤러 & 내 경로를 오토넷 계속해야 하는가?
    • 예인 경우 어떻게 문서화해야합니까?
    • 이러한 코드 조직의 이점은 무엇입니까?
  • 답변

    0

    http://programmers.stackexchange.com 페이지에서 오히려 요청해야하는 철학적 질문입니다. 그러나 어떤 경우 든 ...

    내 개인적인 접근 방식은 프레임 워크를 사용할 때 프레임 워크 자체의 스타일을 따르고 코딩 스타일을 변경하지 않는 것입니다. 나에게 다른 개발자와 함께 일하는 것이 중요하다.

    다른 사람을 팀에 초대하고 싶다고합시다. 코드가 구조화 된 방식을 변경하기 때문에 더 이상 ExpressJS 환경을 요구할 수 없습니다. 새로운 사람과 함께 앉아서 다른 코딩 스타일을 설명해야합니다.

    또 다른 것은 클래스에 모든 것을 돌리는 것이 과잉이라고합니다. 그것은 불필요한 복잡성의 추가 계층으로, 사용자와 다른 사용자가 머리를 감싸 야합니다. 또한이 경우 클래스의 이점을 사용하지 않을 것입니다.

    내가 저라면, 나는 ExpressJS가 의도 한 바와 같이 가능한 한 간단하게 코딩 스타일을 유지할 것입니다. 코멘트? 예를 들어 각 경로에 대한 설명은 다음과 같습니다.

    /** 
    * Nice description 
    * 
    * @param {string} var-name description 
    * @param {int} var-name description 
    */