Learn Nuxt with a Collection of 100+ Tips!

服务器

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

由 Nitro 驱动

服务器引擎

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

使用 Nitro 赋予 Nuxt 超能力:

  • 对应用程序的服务器端部分具有完全控制权
  • 在任何提供商上进行通用部署(许多零配置)
  • 混合渲染

Nitro 在内部使用 h3,这是一个为高性能和可移植性而构建的最小 H(TTP) 框架。

观看 Alexander Lichter 的视频,了解 Nuxt 和 Nitro 在您的应用程序中的责任。

服务器端点和中间件

您可以轻松管理 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 }
} // ... } })
了解所有可用的路由规则,以自定义路由的渲染模式。

此外,还有一些路由规则(例如 ssrappMiddlewareexperimentalNoScripts)是专门用于 Nuxt,用于更改渲染页面为 HTML 时的行为。

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

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

Read more in Docs > Guide > Concepts > Rendering.