---
title: "服务器"
description: "使用 Nuxt 的服务器框架构建全栈应用。您可以从数据库或其他服务器获取数据，创建 API，甚至生成静态的服务器端内容，如站点地图或 RSS 订阅源——所有这些都由同一代码库完成。"
canonical_url: "https://nuxt.zhcndoc.com/docs/3.x/getting-started/server"
---
# 服务器

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

::read-more{to="https://nuxt.zhcndoc.com/docs/3.x/directory-structure/server"}
::

## 由 Nitro 提供支持

![服务器引擎](https://nuxt.zhcndoc.com/assets/docs/getting-started/server.svg)

Nuxt 的服务器框架是 [Nitro](https://github.com/nitrojs/nitro)。它最初为 Nuxt 创建，但现在已经成为 [UnJS](https://unjs.io) 的一部分，并且向其他框架开放——甚至可以独立使用。

使用 Nitro 赋予 Nuxt 超能力：

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

Nitro 内部使用了 [h3](https://github.com/h3js/h3)，这是一个为高性能和可移植性设计的极简 H(TTP) 框架。

::video-accordion{title="观看 Alexander Lichter 的视频，了解 Nuxt 和 Nitro 在您的应用中的职责" videoId="DkvgJa-X31k"}
::

## 服务器端接口与中间件

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

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

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

您可以直接返回 `text`、`json`、`html`，甚至是一个 `stream`。

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

::read-more{to="https://nuxt.zhcndoc.com/docs/3.x/directory-structure/server"}
::

## 通用部署

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

::read-more{to="https://nuxt.zhcndoc.com/blog/nuxt-on-the-edge"}
::

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

- [Cloudflare Workers](https://workers.cloudflare.com)
- [Netlify Functions](https://www.netlify.com/platform/core/functions/)
- [Vercel Cloud](https://vercel.com/home)

或者用于其它运行时：

::card-group
  :::card
  ```yaml [props]
  icon: i-logos-deno
  title: Deno
  to: https://deno.com
  target: _blank
  ```
  :::

  :::card
  ```yaml [props]
  icon: i-logos-bun
  title: Bun
  to: https://bun.com
  target: _blank
  ```
  :::
::

::read-more{to="https://nuxt.zhcndoc.com/docs/3.x/getting-started/deployment"}
::

## 混合渲染

Nitro 提供了强大的功能叫做 `routeRules`，允许您定义一组规则，定制 Nuxt 应用中每个路由的渲染方式（以及更多）。

```ts twoslash [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 },
    },
    // ...
  },
})
```

::read-more{to="https://nuxt.zhcndoc.com/docs/3.x/guide/concepts/rendering#hybrid-rendering"}
了解所有可用的路由规则，以自定义路由的渲染模式。
::

此外，还有一些路由规则（例如 `ssr`、`appMiddleware` 和 `noScripts`）是 Nuxt 特有的，用于改变渲染页面为 HTML 的行为。

部分路由规则（`appMiddleware`、`redirect` 和 `prerender`）也会影响客户端行为。

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

::read-more{to="https://nuxt.zhcndoc.com/docs/3.x/guide/concepts/rendering"}
::


## Sitemap

See the full [sitemap](https://nuxt.zhcndoc.com/sitemap.md) for all pages.
