1

nodeJS 6.x での ExpressJS 4.X の使用

以前はこの方法でルートを定義していました:

/**
 * @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 パラメータ/本文コンテンツ (req.params.name // req.body.name)
    • 返す HTTP エラー コード
    • webstorm のような IDE は、これらのコメントをオートコンプリートに使用します

ベスト プラクティスを探していると、Controller を作成し、別の場所でルート定義を作成し、次のコードで終了するように何度も言われました。

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);

コードをこのように編成する唯一の正当な理由は、同じことを行う 2 つの道路がある場合、それらに同じコントローラを使用させることができるからです。

  • コントローラーとルートを分離し続ける必要がありますか?
  • はいの場合、どのように文書化すればよいですか?
  • このようなコード編成の利点は何ですか?
4

1 に答える 1