服务器
使用 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
})
您可以直接返回 文本
、json
、html
甚至 流
。
开箱即用,它支持与 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 }
}
// ...
}
})
此外,还有一些路由规则(例如,ssr
、appMiddleware
和 experimentalNoScripts
)是 Nuxt 特有的,用于在将页面渲染为 HTML 时更改行为。
一些路由规则(appMiddleware
、redirect
和 prerender
)也会影响客户端行为。
Nitro 用于构建应用程序以进行服务器端渲染以及预渲染。