我想知道我应该用什么方式在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);
}
}
}
在路线中解析参数
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);
}
}
我发现第二个版本 Params解析路径更容易
但是我发现的大多数例子都使用第一个版本,为什么?
答案 0 :(得分:1)
如果你考虑一个更大,更混乱的真实应用程序,路由名称不再与控制器名称等匹配,将完整的路由表(所有router.xxx
调用)放在一个中可能是有益的地方,例如routes.js
。对于给定的URL,这使得新开发人员更容易找出哪个代码处理哪个url。
如果您在routes.js
中包含了所有参数解析,那么它将变得非常混乱,并且您可能会失去将所有这些都集中到一个文件中的一些好处。< / p>
也就是说,没有理由将路由,参数解析/响应格式和控制器逻辑分别放入自己的模块中,从而无法实现两全其美。