サーバー
Nuxtのサーバーフレームワークを使用してフルスタックアプリケーションを構築します。データベースや他のサーバーからデータを取得したり、APIを作成したり、サイトマップやRSSフィードのような静的なサーバーサイドのコンテンツを生成したりすることが、シングルコードベースから可能です。
Nitroによるパワー
NuxtのサーバーはNitroです。元々はNuxt用に作られましたが、現在はUnJSの一部となり、他のフレームワークでも使用可能です。単独で使用することもできます。
Nitroを使用することでNuxtはこのような特長を持ちます:
- アプリケーションのサーバーサイド部分を完全にコントロール
- どのプロバイダーでもユニバーサルデプロイメント(多くはゼロ設定)
- ハイブリッドレンダリング
Nitroは内部でh3を使用しています。これは高性能と移植性を目的とした最小限のH(TTP)フレームワークです。
サーバーエンドポイント & ミドルウェア
APIエンドポイントからミドルウェアまで、Nuxtアプリのサーバー専用部分を簡単に管理できます。
エンドポイントとミドルウェアはこのように定義できます:
export default defineEventHandler(async (event) => {
// ... ここで好きなことをしてください
})
そして、直接text
、json
、html
、またはstream
を返すことができます。
既定で、他のパーツのNuxtアプリケーションと同じように、ホットモジュールリプレースメントとオートインポートをサポートします。
こちらも参照 guide > directory-structure > serverユニバーサルデプロイメント
Nitroは、金属裸のサーバーからエッジネットワークまで、数ミリ秒のスタートアップ時間で、あなたのNuxtアプリをどこにでもデプロイする能力を持っています。それは速いです!
こちらも参照 blog > nuxt-on-the-edge異なるクラウドプロバイダーやサーバー用にNuxtアプリを構築するための15以上のプリセットがあります。その中には:
また、他のランタイムのためのものもあります:
こちらも参照 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
)は、ページをHTMLにレンダリングする際の振る舞いを変更するためのNuxt特有のものです。
いくつかのルートルール(appMiddleware
、redirect
およびprerender
)は、クライアントサイドの振る舞いにも影響します。
Nitroは、サーバーサイドレンダリングはもちろん、プレレンダリングのためにアプリを構築するために使用されます。
こちらも参照 guide > concepts > rendering※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/getting-started/server