[英]Should my controller take the (res, req) params or already extracted params?
我想知道我應該以哪種方式在expressJS中組織路由:
Controller中的參數解析
router.get('/users/:id', UserController.get);
class UserController {
get(res, req) {
var id = res.params.id;
UserModel.get(id, function(user) {
res.send(user);
}
}
}
在Route中解析參數
router.get('/users/:id', function(req, res) {
var id = req.params.id;
UserController.get(id, function(user) {
res.json(user);
}
});
class UserController {
get(id, fn) {
UserModel.get(id, fn);
}
}
我發現在Route中解析第二個版本的Params更容易
但是我發現的大多數示例都使用第一個版本,為什么?
如果您考慮一個更大,更混亂的實際應用程序,其路由名稱不再與控制器名稱等匹配,那么將完整的路由表(所有router.xxx
調用)放在一個位置可能會有所幫助。 routes.js
。 對於給定的URL,這使新開發人員更容易確定哪個代碼處理哪個URL。
如果將所有參數解析都包含在routes.js
,那么它將變得非常混亂,並且您可能會失去將所有這些都收集到一個文件中的某些好處。
就是說,沒有理由將路由,參數解析/響應格式以及控制器邏輯分別放入各自的模塊中,從而無法兼得兩者的優勢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.