ルートの 2 つの因数分解を決定する根拠がわかりません。私の質問は、次のいずれかを決定するための鍵となる要因は何ですか。
- より多くのルート - より少ないパラメーター
- より少ないルート - より多くのパラメーター - ハンドラーのロジック
以下の 2 つのサンプルは私の実際のケースですが、これは一般的な質問だと思います。
私のベースラインは、それぞれ 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);
}
}
この 2 つは、私にはほぼ等しいように見えます。違いは、ルーティング テーブル内の 1 つのブランチと、mymodule 内の 1 つの if ブランチです。これらのファクタリングのいずれかを支持してバランスを傾けるキャッシング、メモ化、またはその他の要因はありますか? クライアント側は要因に貢献していますか?