服务器

使用 Nuxt 的服务器框架构建全栈应用。您可以从数据库或其他服务器获取数据,创建 API,甚至生成静态的服务器端内容,如站点地图或 RSS 订阅源——所有这些都由同一代码库完成。
Read more in Docs > Guide > Directory Structure > Server.

由 Nitro 提供支持

服务器引擎

Nuxt 的服务器框架是 Nitro。它最初为 Nuxt 创建,但现在已经成为 UnJS 的一部分,并且向其他框架开放——甚至可以独立使用。

使用 Nitro 赋予 Nuxt 超能力:

  • 完全控制应用的服务器端部分
  • 可在任何服务提供商上通用部署(多数无需配置)
  • 混合渲染

Nitro 内部使用了 h3,这是一个为高性能和可移植性设计的极简 H(TTP) 框架。

服务器端接口与中间件

您可以轻松管理 Nuxt 应用中仅服务器端的部分,包括 API 接口和中间件。

接口和中间件都可以这样定义:

server/api/test.ts
export default defineEventHandler(async (event) => {
  // ... 在这里执行您的逻辑
})

您可以直接返回 textjsonhtml,甚至是一个 stream

开箱即用,支持 热模块替换自动导入,与 Nuxt 应用的其它部分一致。

Read more in Docs > Guide > Directory Structure > Server.

通用部署

Nitro 提供了能将您的 Nuxt 应用部署到任何地方的能力,从裸机服务器到边缘网络,启动时间仅需几毫秒。非常快!

Read more in Blog > Nuxt On The Edge.

超过 15 种预设可供选择,用于为不同的云服务商和服务器构建您的 Nuxt 应用,包括:

或者用于其它运行时:

Deno

Bun

Read more in Docs > 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 }
    }
    // ...
  }
})
了解所有可用的路由规则,定制您的路由渲染模式。

此外,还有一些路由规则(例如 ssrappMiddlewarenoScripts)是 Nuxt 特有的,用于改变渲染页面为 HTML 的行为。

部分路由规则(appMiddlewareredirectprerender)也会影响客户端行为。

Nitro 被用来构建服务器端渲染以及预渲染的应用。

Read more in Docs > Guide > Concepts > Rendering.