nuxt logo

ドキュメント翻訳(非公式)

サーバー

Nuxtのサーバーフレームワークを使用してフルスタックアプリケーションを構築します。データベースや他のサーバーからデータを取得したり、APIを作成したり、サイトマップやRSSフィードのような静的なサーバーサイドコンテンツを生成したりすることが、単一のコードベースから可能です。

こちらも参照 guide > directory-structure > server

Nitroによるパワーアップ

サーバーエンジン

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

Nitroを使用することでNuxtは以下のようなスーパーパワーを得ます:

  • アプリのサーバーサイド部分を完全にコントロール
  • どのプロバイダーでもユニバーサルデプロイ(多くはゼロコンフィグ)
  • ハイブリッドレンダリング

Nitroは内部的に、高性能と移植性を重視して構築されたミニマルなH(TTP)フレームワークであるh3を使用しています。

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

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

エンドポイントとミドルウェアは以下のように定義できます:

server/api/test.ts
export default defineEventHandler(async (event) => {
  // ... ここで好きなことを行います
})

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

標準で、他のNuxtアプリケーションの部分と同様にホットモジュールリプレースメント自動インポートをサポートしています。

こちらも参照 guide > directory-structure > server

ユニバーサルデプロイ

Nitroは、数ミリ秒の起動時間で、ベアメタルサーバーからエッジネットワークまで、どこにでもNuxtアプリをデプロイする能力を提供します。それは速いです!

こちらも参照 blog > nuxt-on-the-edge

15以上のプリセットがあり、異なるクラウドプロバイダーやサーバー向けにNuxtアプリを構築できます。例えば:

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

こちらも参照 getting-started > deployment

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

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

nuxt.config.ts
export default defineNuxtConfig({
  routeRules: {
    // SEO目的でビルド時に生成
    '/': { prerender: true },
    // 1時間キャッシュ
    '/api/*': { cache: { maxAge: 60 * 60 } },
    // 404を避けるためのリダイレクト
    '/old-page': {
      redirect: { to: '/new-page', statusCode: 302 }
    }
    // ...
  }
})
こちらも参照 guide > concepts > rendering#hybrid-rendering

さらに、ssrappMiddlewarenoScriptsなどのNuxt特有のルートルールがあり、ページをHTMLにレンダリングする際の動作を変更します。

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

Nitroはサーバーサイドレンダリングやプリレンダリングのためにアプリを構築するために使用されます。

こちらも参照 guide > concepts > rendering