サーバー
Nuxtのサーバーフレームワークを使用してフルスタックアプリケーションを構築します。データベースや他のサーバーからデータを取得したり、APIを作成したり、サイトマップやRSSフィードのような静的なサーバーサイドコンテンツを生成したりすることが、単一のコードベースから可能です。
Nitroによるパワーアップ
NuxtのサーバーはNitroです。もともとはNuxtのために作られましたが、現在はUnJSの一部であり、他のフレームワークにも開放されており、単独でも使用できます。
Nitroを使用することでNuxtは以下のようなスーパーパワーを得ます:
- アプリのサーバーサイド部分を完全にコントロール
- どのプロバイダーでもユニバーサルデプロイ(多くはゼロコンフィグ)
- ハイブリッドレンダリング
Nitroは内部的に、高性能と移植性を重視して構築されたミニマルなH(TTP)フレームワークであるh3を使用しています。
サーバーエンドポイントとミドルウェア
Nuxtアプリのサーバー専用部分を、APIエンドポイントからミドルウェアまで簡単に管理できます。
エンドポイントとミドルウェアは以下のように定義できます:
export default defineEventHandler(async (event) => {
// ... ここで好きなことを行います
})
そして、text
、json
、html
、さらにはstream
を直接返すことができます。
標準で、他のNuxtアプリケーションの部分と同様にホットモジュールリプレースメントと自動インポートをサポートしています。
こちらも参照 guide > directory-structure > serverユニバーサルデプロイ
Nitroは、数ミリ秒の起動時間で、ベアメタルサーバーからエッジネットワークまで、どこにでもNuxtアプリをデプロイする能力を提供します。それは速いです!
こちらも参照 blog > nuxt-on-the-edge15以上のプリセットがあり、異なるクラウドプロバイダーやサーバー向けにNuxtアプリを構築できます。例えば:
また、他のランタイム向けには:
こちらも参照 getting-started > deploymentハイブリッドレンダリング
NitroにはrouteRules
という強力な機能があり、Nuxtアプリの各ルートがどのようにレンダリングされるかをカスタマイズするための一連のルールを定義できます(その他も)。
export default defineNuxtConfig({
routeRules: {
// SEO目的でビルド時に生成
'/': { prerender: true },
// 1時間キャッシュ
'/api/*': { cache: { maxAge: 60 * 60 } },
// 404を避けるためのリダイレクト
'/old-page': {
redirect: { to: '/new-page', statusCode: 302 }
}
// ...
}
})
さらに、ssr
、appMiddleware
、noScripts
などのNuxt特有のルートルールがあり、ページをHTMLにレンダリングする際の動作を変更します。
一部のルートルール(appMiddleware
、redirect
、prerender
)はクライアントサイドの動作にも影響を与えます。
Nitroはサーバーサイドレンダリングやプリレンダリングのためにアプリを構築するために使用されます。
こちらも参照 guide > concepts > rendering※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/4.x/getting-started/server