サーバーエンジン
Nuxt を構築する際、私たちは新しいサーバーエンジンを開発しましたNitro.
多くの機能が搭載されています
- Node.js、ブラウザ、サービスワーカーなど、クロスプラットフォームをサポート。
- サーバーレスサポートを標準搭載。
- API ルートをサポート。
- 自動コード分割と非同期読み込みチャンク。
- 静的サイトとサーバーレスサイトのハイブリッドモード。
- ホットモジュールリロード付き開発サーバー。
API レイヤー
サーバー API エンドポイント と ミドルウェア は、内部的に使用する Nitro によって追加されます。h3.
主な機能には以下が含まれます
- ハンドラは、自動的に処理される JSON レスポンスとしてオブジェクト/配列を直接返すことができます。
- ハンドラは Promise を返すことができ、それは await されます (
res.end()とnext()もサポートされています) - ボディ解析、クッキー処理、リダイレクト、ヘッダーなどのヘルパー関数
以下を確認してくださいh3 ドキュメントをご覧ください。
ダイレクト API コール
Nitro は、グローバルに利用可能な $fetch ヘルパーを介してルートを「直接」呼び出すことを可能にします。これは、ブラウザで実行された場合はサーバーに API コールを行いますが、サーバーで実行された場合は関連する関数を直接呼び出すため、**追加の API コールを節約します**。
$fetch API は以下を使用していますofetch主な機能は以下の通りです
- JSON レスポンスの自動解析 (必要に応じて生レスポンスへのアクセスも可能)
- リクエストボディとパラメータは自動的に処理され、正しい
Content-Typeヘッダーが設定されます
$fetch の機能の詳細については、以下を確認してくださいofetch.
型付き API ルート
API ルート (またはミドルウェア) を使用する場合、Nitro は、レスポンスを送信するために res.end() を使用する代わりに値を返す限り、これらのルートの型定義を生成します。
$fetch() または useFetch() を使用する際に、これらの型にアクセスできます。
スタンドアロンサーバー
Nitro は node_modules に依存しないスタンドアロンのサーバーディストリビューションを生成します。
Nuxt 2 のサーバーはスタンドアロンではなく、nuxt start (nuxt-startまたはnuxtディストリビューション) を実行するか、カスタムのプログラム的な使用によって Nuxt コアの一部を関与させる必要がありましたが、これは不安定で破損しやすく、サーバーレスやサービスワーカー環境には適していませんでした。
Nuxt は nuxt build を実行すると、.output ディレクトリにこのディストリビューションを生成します。
この出力には、あらゆる環境(実験的なブラウザサービスワーカーを含む!)で Nuxt サーバーを実行し、静的ファイルを提供するためのランタイムコードが含まれており、JAMstack の真のハイブリッドフレームワークとなっています。さらに、Nuxt はマルチソースドライバーとローカルアセットをサポートするネイティブストレージレイヤーを実装しています。