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