Sailsは、すぐに使用できる従来のHTTPミドルウェアのスイートをバンドルして提供しています。もちろん、無効化、オーバーライド、追加、または並べ替えを選択できますが、プリインストールされたスタックは、開発中または本番環境のほとんどのアプリケーションで完全に受け入れ可能です。以下は、サーバーが着信HTTPリクエストを受信するたびに実行される順序で、Sailsにバンドルされている標準的なHTTPミドルウェア関数のリストです。
| HTTPミドルウェアキー | 目的 |
|---|---|
| cookieParser * | Cookieヘッダーをクリーンなオブジェクトに解析し、後続のミドルウェアとアプリケーションコードで使用します。 |
| session * | Cookieとセッション設定に基づいて、リクエスト元のユーザーエージェントに対して一意のセッションオブジェクト(req.session)を作成またはロードします。 |
| bodyParser | Skipperを使用して、HTTPリクエスト本文からパラメータとバイナリアップストリーム(ストリーミングファイルアップロード用)を解析します。 |
| compress | gzip/deflateを使用してレスポンスデータを圧縮します。compressionの詳細を参照してください。 |
| poweredBy | 発信レスポンスにX-Powered-Byヘッダーを添付します。 |
| router * | ここで、アプリケーションロジックの大部分が、特定のリクエストに適用されます。フックの"before"ハンドラー(例:CSRFトークンの強制)およびいくつかの内部Sailsロジックを実行することに加えて、これはsails.config.routes内にあるアプリケーションの明示的なルートや、ルートブループリントを使用してリクエストをルーティングします。 |
| www * | 静的ファイル(通常は画像、スタイルシート、スクリプト)をアプリケーションの"public"フォルダ(sails.config.pathsで設定され、従来は.tmp/public/)で、Connectの静的ミドルウェアを使用して提供します。 |
| favicon | /assets/favicon.icoとして提供されている場合、アプリケーションのブラウザファビコンを提供します。 |
* : アスタリスク(*)が付いたミドルウェアは、ほとんどの場合変更または削除する必要はありません。本当に理解している場合にのみ行ってください。