28

Expressでは、いくつかのルートを定義しました

app.post("/api/v1/client", Client.create);
app.get("/api/v1/client", Client.get);
...

クライアントコントローラー内でリクエストを処理する方法を定義しました。コントローラーでリクエストを処理する前に、リクエストの前処理を行う方法はありますか? 特に、アクセス レベルの概念を使用して、API 呼び出し元がルートへのアクセスを許可されているかどうかを確認したいと考えています。アドバイスをいただければ幸いです。

4

1 に答える 1

64

いくつかの方法で必要なことを行うことができます。

これにより、ルーターに到達する前に使用されるミドルウェアが配置されます。ルーターがapp.use()after で追加されていることを確認してください。ミドルウェアの順序は重要です。

app.use(function(req, res, next) {
  // Put some preprocessing here.
  next();
});
app.use(app.router);

ルート ミドルウェアを使用することもできます。

var someFunction = function(req, res, next) {
  // Put the preprocessing here.
  next();
};
app.post("/api/v1/client", someFunction, Client.create);

これにより、そのルートの前処理ステップが実行されます。

注:app.use()呼び出しがルート定義の前にあることを確認してください。ルートを定義すると、自動的に app.router がミドルウェア チェーンに追加され、ユーザー定義のミドルウェアよりも先に配置される場合があります。

于 2012-06-14T18:13:59.073 に答える