nuxt logo

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

サーバー

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

こちらも参照 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) => {
  // ... ここで好きなことをしてください
})

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

既定で、他のパーツのNuxtアプリケーションと同じように、ホットモジュールリプレースメントオートインポートをサポートします。

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

ユニバーサルデプロイメント

Nitroは、金属裸のサーバーからエッジネットワークまで、数ミリ秒のスタートアップ時間で、あなたのNuxtアプリをどこにでもデプロイする能力を持っています。それは速いです!

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

異なるクラウドプロバイダーやサーバー用にNuxtアプリを構築するための15以上のプリセットがあります。その中には:

また、他のランタイムのためのものもあります:

こちらも参照 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)は、ページをHTMLにレンダリングする際の振る舞いを変更するためのNuxt特有のものです。

いくつかのルートルール(appMiddlewareredirectおよびprerender)は、クライアントサイドの振る舞いにも影響します。

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

こちらも参照 guide > concepts > rendering