我看不到在两种路线因素之间做出决定的依据。我的问题是什么因素是决定之间的关键:
- 更多路线 - 更少的参数
- 更少的路线 - 更多的参数 - 处理程序中的逻辑
下面的两个示例是我的实际案例,但我认为这是一个普遍的问题。
我的基线是 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);
}
备用因式分解是 1 个具有 3 个参数的路由。
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 中有一个 if 分支。是否存在缓存、记忆或其他因素使平衡倾向于这些因素之一?客户端是否有影响?