伺服器
使用 Nuxt 的伺服器框架構建全棧應用程式。您可以從資料庫或其他伺服器獲取資料、建立 API,甚至生成靜態伺服器端內容,如站點地圖或 RSS 源——所有這些都來自單一程式碼庫。
由 Nitro 提供支援
Nuxt 的伺服器是Nitro。它最初是為 Nuxt 建立的,但現在是UnJS的一部分,並對其他框架開放——甚至可以單獨使用。
使用 Nitro 賦予 Nuxt 超能力
- 完全控制應用程式的伺服器端部分
- 在任何提供商上通用部署(許多零配置)
- 混合渲染
Nitro 內部使用h3,一個為高效能和可移植性而構建的極簡 H(TTP) 框架。
伺服器端點和中介軟體
您可以輕鬆管理 Nuxt 應用程式的純伺服器端部分,從 API 端點到中介軟體。
端點和中介軟體都可以這樣定義
server/api/test.ts
export default defineEventHandler(async (event) => {
// ... Do whatever you want here
})
您可以直接返回text
、json
、html
,甚至是stream
。
開箱即用,它支援**熱模組替換**和**自動匯入**,就像 Nuxt 應用程式的其他部分一樣。
通用部署
Nitro 提供了將您的 Nuxt 應用程式部署到任何地方的能力,從裸機伺服器到邊緣網路,啟動時間僅需幾毫秒。這太快了!
有超過 15 個預設可以為不同的雲提供商和伺服器構建您的 Nuxt 應用程式,包括
或用於其他執行時
混合渲染
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 },
},
// ...
},
})
此外,還有一些 Nuxt 特有的路由規則(例如,ssr
、appMiddleware
和noScripts
),用於更改將頁面渲染為 HTML 時的行為。
一些路由規則(appMiddleware
、redirect
和prerender
)也會影響客戶端行為。
Nitro 用於構建應用程式以進行伺服器端渲染和預渲染。