使用expressJS 4.X與6.x的的NodeJSExpressJS,路線清晰,控制位置和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);
}
,我發現這是一個正確的方法因爲要做到這一點:
- 你寫的路由定義上面的路線文檔
- 如果修改路由,修改文檔
- 你有你的控制器上面的路線文檔
- 網址參數/主體內容(req.params.name // req.body.name)
- HTTP錯誤代碼返回
- IDE像webstorm使用了自動完成
尋找最佳實踐,我已經講了很多次,我應該創建一個控制器,使路線確定指標的其他地方,用下面的代碼結尾:
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);
唯一的好理由我組織的這種方式見你的代碼是,如果你有兩條道路做同樣的事情,你可以讓它們使用同一個控制器。
- 我應該不斷分開我的控制器&我的路線?
- 如果是,我應該如何記錄它?
- 這樣的代碼組織有什麼好處?