サーバー

Nuxt のサーバーフレームワークでフルスタックアプリケーションを構築しましょう。データベースや他のサーバーからデータをフェッチしたり、API を作成したり、サイトマップや RSS フィードのような静的なサーバーサイドコンテンツを生成したりできます。これらすべてを単一のコードベースから行えます。
Docs > 4 X > Guide > Directory Structure > Server で詳細をお読みください。

Nitro を搭載

Nuxt のサーバーはNitroです。元々は Nuxt のために作成されましたが、現在はUnJSの一部であり、他のフレームワークにも開放されており、単独でも使用できます。

Nitro を使用すると、Nuxt に超能力が与えられます

  • アプリケーションのサーバーサイド部分を完全に制御
  • 任意のプロバイダーへのユニバーサルデプロイ (多くはゼロコンフィグ)
  • ハイブリッドレンダリング

Nitro は内部的にh3を使用しています。これは、高いパフォーマンスとポータビリティのために構築された最小限の H(TTP) フレームワークです。

サーバーエンドポイントとミドルウェア

API エンドポイントからミドルウェアまで、Nuxt アプリのサーバー専用部分を簡単に管理できます。

エンドポイントとミドルウェアはどちらもこのように定義できます。

server/api/test.ts
export default defineEventHandler(async (event) => {
  // ... Do whatever you want here
})

textjsonhtml、さらには stream を直接返すことができます。

すぐに利用できる機能として、Nuxt アプリケーションの他の部分と同様に、ホットモジュールリプレースメントオートインポートをサポートしています。

Docs > 4 X > Guide > Directory Structure > Server で詳細をお読みください。

ユニバーサルデプロイ

Nitro は、ベアメタルサーバーからエッジネットワークまで、Nuxt アプリをあらゆる場所にデプロイする機能を提供します。起動時間はわずか数ミリ秒です。これは高速です!

Blog > Nuxt On The Edge で詳細をお読みください。

様々なクラウドプロバイダーやサーバー向けに Nuxt アプリをビルドするための 15 以上のプリセットがあります。

または他のランタイム向け

Deno

Bun

Docs > 4 X > Getting Started > Deployment で詳細をお読みください。

ハイブリッドレンダリング

Nitro には routeRules と呼ばれる強力な機能があり、Nuxt アプリの各ルートがどのようにレンダリングされるか (など) をカスタマイズするための一連のルールを定義できます。

nuxt.config.ts
export default defineNuxtConfig({
  routeRules: {
    // Generated at build time for SEO purpose
    '/': { prerender: true },
    // Cached for 1 hour
    '/api/*': { cache: { maxAge: 60 * 60 } },
    // Redirection to avoid 404
    '/old-page': {
      redirect: { to: '/new-page', statusCode: 302 },
    },
    // ...
  },
})
ルートのレンダリングモードをカスタマイズするために利用できるすべてのルートルールについて学びましょう。

さらに、HTML にページをレンダリングする際の動作を変更するための Nuxt 固有のルートルール (例: ssrappMiddlewarenoScripts) があります。

一部のルートルール (appMiddlewareredirectprerender) は、クライアントサイドの動作にも影響します。

Nitro は、サーバーサイドレンダリングおよびプリレンダリングのためにアプリをビルドするために使用されます。

Docs > 4 X > Guide > Concepts > Rendering で詳細をお読みください。