服务器

使用 Nuxt 的服务框架构建全栈应用。您可以从数据库或其他服务器获取数据、创建 API,甚至生成像 sitemap 或 RSS feed 这样的静态服务器端内容 —— 所有这些都可以从一个代码库完成。

Maschinelle Übersetzung ·0 % geprüft

Weitere Informationen findest du unter Docs > Directory Structure > Server.

由 Nitro 提供支持

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

使用 Nitro 为 Nuxt 带来强大功能:

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

Nitro 在内部使用 h3,这是一个为高性能和可移植性构建的精简 HTTP 框架。

服务器端点与中间件

您可以轻松管理 Nuxt 应用的仅服务器部分,从 API 端点到中间件。

端点和中间件都可以这样定义:

export default defineEventHandler(async (event) => {
  // ... Mach hier, was du willst
})

并且您可以直接返回 text、json、html 或甚至一个 stream。

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

Weitere Informationen findest du unter Docs > Directory Structure > Server.

通用部署

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

Weitere Informationen findest du unter Blog > Nuxt On The Edge.

有 15 个以上的预设可用于为不同的云提供商和服务器构建您的 Nuxt 应用,包括:

或者用于其他运行时:

Deno

Bun

Weitere Informationen findest du unter Docs > Getting Started > Deployment.

混合渲染

Nuxt 有一项名为 routeRules 的强大功能,可让您定义一组规则,自定义 Nuxt 应用中每个路由的渲染方式(以及其他行为)。Nuxt 会编译这些规则,默认的服务器构建器(Nitro)则会应用其中的服务端规则。

export default defineNuxtConfig({
  routeRules: {
    // Zu SEO-Zwecken zur Build-Zeit generiert
    '/': { prerender: true },
    // 1 Stunde lang zwischengespeichert
    '/api/*': { cache: { maxAge: 60 * 60 } },
    // Weiterleitung, um einen 404-Fehler zu vermeiden
    '/old-page': {
      redirect: { to: '/new-page', statusCode: 302 },
    },
    // ...
  },
})
了解所有可用于自定义路由渲染模式的路由规则。

此外,还有一些路由规则(例如 ssr、appMiddleware 和 noScripts)是 Nuxt 特有的,用于在将页面渲染为 HTML 时更改行为。

某些路由规则(appMiddleware、redirect 和 prerender)也会影响客户端行为。

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

Weitere Informationen findest du unter Docs > Guide > Concepts > Rendering.