Expressを使用する場合、ルート文字列にプレースホルダーを使用してルートを定義できます。たとえば、次のようになります。
app.get("/users/:user_id/photos", function(req,res){<blah>});
次に、ハンドラーreq.params["user_id"]
で、URLに含まれているものをすべて取得して、リクエストで使用できます。
ミドルウェアは、そのパスに一致するリクエストのみがミドルウェアを使用するように、特定のパスにマウントできます。ミドルウェアのマウントパスでプレースホルダーを使用できますか?たとえば、次のようなことができますか?
app.use("/users/:user_id/photos", <middleware>);
そして、ミドルウェアの内部には、マップ先のセグメントが何であるかにアクセスする方法があり:user_id
ますか?
編集1:
私はミドルウェアをルート宣言に直接入れることができることを知っています。
app.get("/users/:user_id/photos", <middleware>, function(req,res){<blah>});
アプリが成長するにつれて、それがどのように手に負えなくなるかを理解するのに、それほど想像力は必要ありません。