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