决定路线与参数的关键因素是什么?

我看不出在两种路线之间作出决定的基础。 我的问题是什么因素是决定之间的关键:

  • 更多的路线 – 更less的参数
  • 更less的路由 – 更多的参数 – 处理程序的逻辑

下面的两个样本是我的实际案例,但我认为这是一个普遍的问题。

我的基线是2路每个有2个参数:

URI's: /poweronoff?id=4&val=1 /powerset?id=7&val=75 // app.js app.get('/poweronoff', mymodule.poweronoff); app.get('/powerset', mymodule.powerset); // mymodule exports.poweronoff= function(req, res){ setonoff(req.query.id, req.query.val, req, res); } exports.powerset = function(req, res){ setvalue(req.query.id, req.query.val, req, res); } 

替代因子是具有3个参数的1条路线。

 URI's: /power?action=onoff&id=4&val=1 /power?action=set&id=7&val=75 // app.js app.get('/power', mymodule.power); // mymodule exports.power = function(req, res){ if (req.query.action = 'onoff') { setonoff(req.query.id, req.query.val, req, res); } else { setvalue(req.query.id, req.query.val, req, res); } } 

这两个看起来和我差不多。 不同之处在于路由表中的一个分支,而不是mymodule中的一个分支。 有caching,memoization或其他因素,倾向于平衡有利于这些因素之一? 客户方是否贡献了一个因素?

这是一个没有正确答案的哲学问题。

  • 如果您实现REST服务,则可能需要使用RESTful URIdevise。
  • 如果你可以自由select,但你喜欢干净的devise,你可以坚持清理URLdevise。
  • 如果你只是想学习一个好的URLdevise的一般原则,你可能想要检查这个好的答案 。