Express js を使用して単純な NodeJS Web サービスを記述します。私は歴史的にパイソン派です。
Django や Flask などのフレームワークでは、特定のエンドポイントでのみプラグインからのロジックを実装するために使用される Python デコレータがよく見られます。このパターンの例は、ここで見ることができます。
http://pythonhosted.org/Flask-Classy/#using-multiple-routes-for-a-single-view
私はExpressミドルウェアに取り組んでおり、すべてがapp.use
3パリティ機能でうまく機能していますが、これはすべてのリクエストに対して実行されるロジックにのみ関連しています。プラグインのエンド ユーザーが、上記のソースで概説されているパターンと同様の特定のエンドポイントでのみ、(既に別の関数で) ロジックのパーセルを実行できるようにしたいと考えています。
これらのラッパーへの構成の一部は、アプリの開始時に渡されます。
これに対する最善のアプローチは何ですか?実際のルート ハンドラーを引数として受け取り、最後にそれを返す関数を使用して、このパターンをエミュレートする必要がありますか? このようなもの?
function pluginWrapper(endptFunc){
//plugin logic here
return endptFunc;
}
app.get('/endpt', pluginWrapper(function(req,res,next){
//endpt logic here
res.end()
}));