服务器

使用 Nuxt 的服务器框架构建全栈应用。你可以从数据库或其他服务器获取数据、创建 API,甚至生成静态的服务器端内容(如站点地图或 RSS 订阅源)—— 所有这些都可以在单一代码库中完成。
阅读更多 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 应用的其他部分一样,它开箱即用地支持热模块替换自动导入

阅读更多 Docs > Guide > Directory Structure > Server.

通用部署

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

阅读更多 Blog > Nuxt On The Edge.

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

也支持其他运行时:

Deno

Bun

阅读更多 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 用于构建服务器端渲染的应用,也用于预渲染。

阅读更多 Docs > Guide > Concepts > Rendering.