1

私はgrunt-contrib-connectが初めてで、このフォローmiddleware関数 Yoeman の実装に出くわしました -

middleware: function(connect, options, middlewares) {
    return [
        proxySnippet,
        connect.static('.tmp'),
        connect().use('/bower_components', connect.static('./bower_components')),
        connect.static(config.app)
    ];
}

この実装の目的は何ですか?

4

1 に答える 1

1

これらは接続ミドルウェアです。ミドルウェアは、リクエストごとに実行されるリクエスト コールバック関数です。現在の要求と応答のサイクルを変更/終了するか、スタック内の次のミドルウェアに要求を渡すことができます。ミドルウェアの詳細については、エクスプレス ガイドを参照してください。

コードでは、スタックに 4 つのミドルウェアがあります。1 つ目は、現在のリクエストを別のサーバーにプロキシするためのものです。残りの 3 つのミドルウェアは、3 つの異なるディレクトリから静的ファイルを提供するためのものです。

サーバーに対してリクエストが行われると、次の順序でこれらのミドルウェアを通過します。

  1. リクエストをプロキシする必要があるかどうかを確認します。他のサーバーにプロキシされている場合は、要求/応答サイクルの終わりであり、残りの 3 つのミドルウェアは無視されます。

  2. プロキシされていない場合は、要求されたファイルを./tmpディレクトリから提供しようとします。

  3. 上記でファイルが見つからない場合は、 内を検索します./bower_components。このミドルウェアは、パスに「/bower_components/」が含まれるリクエストに対してのみ実行されることに注意してください。例: http://localhost:9000/bower_components/bootstrap/bootstrap.js
  4. 最後に、上記の 2 つのディレクトリでファイルが見つからない場合は、 で設定されているパスでファイルを検索しますconfig.app

それがスタックの終わりです。その後、404 Not found エラーが発生します。

于 2015-10-25T02:24:22.110 に答える