服务器

使用 Nuxt 的服务器框架构建全栈应用程序。你可以从数据库或另一个服务器获取数据、创建 API,甚至生成静态服务器端内容,如站点地图或 RSS 源——所有这些都来自一个代码库。
文档 > 4 X > 指南 > 目录结构 > 服务器中阅读更多内容。

由 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
})

你可以直接返回文本jsonhtml,甚至是

开箱即用,它支持热模块替换自动导入,就像 Nuxt 应用程序的其他部分一样。

文档 > 4 X > 指南 > 目录结构 > 服务器中阅读更多内容。

通用部署

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

博客 > 边缘上的 Nuxt中阅读更多内容。

有超过 15 个预设可以为不同的云提供商和服务器构建你的 Nuxt 应用程序,包括

或者其他运行时

Deno

Bun

文档 > 4 X > 入门 > 部署中阅读更多内容。

混合渲染

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 的路由规则(例如,ssrappMiddlewarenoScripts),用于在将页面渲染为 HTML 时更改行为。

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

Nitro 用于为服务器端渲染以及预渲染构建应用程序。

文档 > 4 X > 指南 > 概念 > 渲染中阅读更多内容。