1

EJS フィルターでリクエスト オブジェクトを取得したいと考えています。出来ますか?

私のフィルターは非常に単純ですが、正しいアセットを提供するために、(URL パスによって) どの領域でフィルターが起動されるかを確認する必要があります。リクエストからURLを取得できると思いますが、ここで取得するにはどうすればよいですか?

関数スコープに興味深い値を設定するミドルウェア関数を書き始めましたが、ejs フィルターが起動される前に他のリクエストによって値が変更される可能性があるため、機能しません。

ドメインで処理できることはわかっていますが、まだドメインに慣れておらず、ノードのバージョンでさえサポートしていません。

ejs フィルター内で req オブジェクトを取得する簡単な方法はありますか?

4

1 に答える 1

2

あなたのミドルウェア ソリューションは正しい軌道に乗っていたようですが、app.locals代わりにres.locals次のものを使用しました。

app.use(function(req, res, next) {
  res.locals.request = req;
  next();
});

app.localsアプリケーション全体のストレージであり、新しいリクエストごとに上書きされます。res.locals各リクエストに一意にスコープされます。

フィルターで使用したい場合はrequest、引数として渡す必要があります。

<%=: myvar|myfilter:request %>

明らかに、リクエスト オブジェクト全体を渡す代わりに.url、フィルタで必要なものがプロパティのみである場合は、プロパティのみを使用できます。

于 2013-10-17T05:33:33.917 に答える