明示的に、ルーティングミドルウェアを使用する場合、要求オブジェクトに追加するのは問題ありませんか?それとも悪いパターンですか?代替案?ありがとう。なぜあなたはいけないreqパラメータに安全に追加できますか?
getLayout = function(req, res, next){
req.layout = (req.params.blah == 'blah') ? 'layout_simple' : 'layout_full';
next();
}
明示的に、ルーティングミドルウェアを使用する場合、要求オブジェクトに追加するのは問題ありませんか?それとも悪いパターンですか?代替案?ありがとう。なぜあなたはいけないreqパラメータに安全に追加できますか?
getLayout = function(req, res, next){
req.layout = (req.params.blah == 'blah') ? 'layout_simple' : 'layout_full';
next();
}
は私が表示されていない
app.get('/', getLayout, function(req, res){
if(req.layout == 'simple') ...render simple layout...
else ...render full layout...
});
。
多くあります。
私はこれがミドルウェアが典型的に何をしているかの印象を受けています。 http://expressjs.com/guide.html#route-middleware
彼らは現在のユーザーとして自分のミドルウェアにreq.userを設定します。速達ドキュメントから
。
私はj_mcnallyに同意します。これは船外に出られない限り、これは素晴らしいパターンです。具体的には、回答に密接に関連するほとんどのものをres
オブジェクトに追加します。これは、レイアウト情報、HTMLフラグメント、応答の中間表現jsdom env表現などのようなものです。req
については、クエリー文字列の表現であるものや要求のボディ情報にタックを付けるのが理にかなっています。ための
http://expressjs.com/guide.html#route-middleware
しかし、それはかなりのパフォーマンスに影響を与えることができます。これは、明示ドキュメントは、それがやや標準的な慣行だ示唆
など、検索クエリを解析され、現在のユーザーオブジェクトの入力パラメータのようなものだろうV8の仕組み:
http://blog.tojicode.com/2012/03/javascript-memory-optimization-and.html
http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript
ありがとう、彼らがそれを使用したときに逃している必要があります – Mike
問題は、私もベストプラクティスの奴隷です:) –