サーバーエンジン

Nuxt は新しいサーバーエンジンである Nitro を搭載しています。

Nuxt を構築する際、私たちは新しいサーバーエンジンを開発しましたNitro.

多くの機能が搭載されています

  • Node.js、ブラウザ、サービスワーカーなど、クロスプラットフォームをサポート。
  • サーバーレスサポートを標準搭載。
  • API ルートをサポート。
  • 自動コード分割と非同期読み込みチャンク。
  • 静的サイトとサーバーレスサイトのハイブリッドモード。
  • ホットモジュールリロード付き開発サーバー。

API レイヤー

サーバー API エンドポイントミドルウェア は、内部的に使用する Nitro によって追加されます。h3.

主な機能には以下が含まれます

  • ハンドラは、自動的に処理される JSON レスポンスとしてオブジェクト/配列を直接返すことができます。
  • ハンドラは Promise を返すことができ、それは await されます (res.end()next() もサポートされています)
  • ボディ解析、クッキー処理、リダイレクト、ヘッダーなどのヘルパー関数

以下を確認してくださいh3 ドキュメントをご覧ください。

server/ ディレクトリにある API レイヤーの詳細について学びましょう。

ダイレクト 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 はマルチソースドライバーとローカルアセットをサポートするネイティブストレージレイヤーを実装しています。

Nitro エンジンに関する詳細については、GitHub を参照してください。