# @apollo/server 中文文档

规范地址：https://npmcn.com/package/%40apollo/server/

版本：5\.5\.1
npm 元数据更新时间：2026-05-05T16:05:59.292Z
中文译文更新时间：2026-11-06T10:55:23.792Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apollo/server
原文对照：https://npmcn.com/package/%40apollo/server/?lang=original
项目主页：https://github.com/apollographql/apollo-server#readme
源码仓库：https://github.com/apollographql/apollo-server

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.2 MB，556 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：20 个
- peer 依赖：graphql ^16\.11\.0
- 首次发布：2019-09-06T17:07:19.040Z
- 最新版本发布：2026-05-05T16:05:58.885Z
- 近 30 天下载量：12652579（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：80（近 12 个月 6 个）

## 中文简介

阿波罗 GraphQL 服务器的核心引擎

## 安装

```sh
npm install @apollo/server
```

也可以使用：`pnpm add @apollo/server`、`yarn add @apollo/server`、`bun add @apollo/server`

## README

# `@apollo/server`

> 这个 `@apollo/server` 软件包是自阿波罗服务器 4 以来的新软件包 。 以前阿波罗服务器的主要版本使用了一套从 `apollo-server`,例如 `apollo-server`, (中文(简体) ), `apollo-server-express`, (中文(简体) ), `apollo-server-core`等 (中文(简体) ).

[![npm version](https://badge.fury.io/js/%40apollo%2Fserver.svg)](https://badge.fury.io/js/%40apollo%2Fserver) [![Build Status](https://circleci.com/gh/apollographql/apollo-server.svg?style=svg)](https://circleci.com/gh/apollographql/apollo-server) [![Join the community](https://img.shields.io/discourse/status?label=Join%20the%20community&server=https%3A%2F%2Fcommunity.apollographql.com)](https://community.apollographql.com/)

* * *

**通知:** 在阿波罗2025年的GraphQL峰会上加入1000+工程师进行会谈,作坊和办公时间. 2025年10月6日至8日在旧金山举行. [过来这里 - >](https://www.apollographql.com/graphql-summit-2025?utm_campaign=2025-03-04_graphql-summit-github-announcement&utm_medium=github&utm_source=apollo-server)

* * *

## 一个 TypeScript/ JavaScript 图形QL 服务器

**阿波罗服务器是一个 [开源](https://github.com/apollographql/apollo-server),符合光谱的 GraphQL 服务器** 兼容任意 GraphQL 客户端,包括 [阿波罗客户端](https://www.apollographql.com/docs/react)。这是构建一个可使用来自任何来源的数据的可制取的自文件化GraphQL API的最佳方法.

您可以使用阿波罗服务器作为 :

-   一个独立的 GraphQL 服务器
-   A 的 GraphQL 服务器 [子图](https://www.apollographql.com/docs/federation/subgraphs/) 在联邦超级图中
-   一个入口 [联邦超级图](https://www.apollographql.com/docs/federation/)

阿波罗服务器提供了一个简单的API,用于与任何节点.js的网络框架或无服务器环境相融合. 这个 `@apollo/server` 包件本身载有一个最小可配置的独立网络服务器,处理 CORS 和身体解析出框。 与其他环境的融合由社区维持.

阿波罗服务器提供:

-   **直走设置**,因此您的客户端开发者可以快速开始获取数据
-   **逐步通过**,使您能够添加 功能,因为需要
-   **通用兼容性** 包含任何数据源、任何构建工具以及任何 GraphQL 客户端
-   **生产准备**,使您能够自信地运行您的图表在制作中

## 文档

阿波罗服务器的完整文档可在 [我们的文件网站](https://www.apollographql.com/docs/apollo-server/)。这个 README 显示服务器运行的基本原理( 既独立运行, 也与 Express 运行) , 但大多数特性只记录在我们的文件网站上 .

## 开始: 独立的服务器

> 也可以检查 [开始中](https://www.apollographql.com/docs/apollo-server/getting-started) 在阿波罗服务器文档中提供更多细节的指南,包括TypeScript和JavaScript中的例子.

阿波罗服务器的独立服务器可以让你得到一个GraphQL服务器并快速运行,而不需要自己建立HTTP服务器. 它允许GraphQL逻辑和Express集成一样的所有配置,但不能提供将精细的纹理切入您服务器的HTTP特定行为的能力.

首先,安装阿波罗服务器和JavaScript执行核心GraphQL算法:

```
npm install @apollo/server graphql
```

然后,写下以下 `server.mjs`. (使用 `.mjs` 扩展名,节点允许您使用 `await` 顶级关键字. )

```js
import { ApolloServer } from '@apollo/server';
import { startStandaloneServer } from '@apollo/server/standalone';

// The GraphQL schema
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// A map of functions which return data for the schema.
const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

const server = new ApolloServer({
  typeDefs,
  resolvers,
});

const { url } = await startStandaloneServer(server);
console.log(`🚀 Server ready at ${url}`);
```

现在运行您的服务器 :

```
node server.mjs
```

打开它在网页浏览器中打印的 URL 。 它会显示 [阿波罗沙盒](https://www.apollographql.com/docs/studio/explorer/sandbox/),用于运行 GraphQL 操作的网络工具。 尝试运行操作 `query { hello }`来啊!

## 开始: 执行中间软件

阿波罗服务器的"快递"中间软件允许您运行您的 GraphQL 服务器,作为应用软件的一部分 [快递](https://expressjs.com/),最受欢迎的节点网络框架.

首先,安装阿波罗服务器,它的Express中间软件,JavaScript执行核心GraphQL算法,Express,以及用于CORS头的标准Express中间软件包:

```
npm install @apollo/server @as-integrations/express5 graphql express cors
```

如果使用 Typescription, 您可能还需要安装额外的类型声明包作为开发依赖, 以避免在导入上述软件包时出现常见错误( 即找不到模块的声明文件 ) `cors`':

```
npm install --save-dev @types/cors @types/express
```

然后,写下以下 `server.mjs`. (使用 `.mjs` 扩展名,节点允许您使用 `await` 顶级关键字. )

```js
import { ApolloServer } from '@apollo/server';
import { expressMiddleware } from '@as-integrations/express5';
import { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer'
import express from 'express';
import http from 'http';
import cors from 'cors';

// The GraphQL schema
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// A map of functions which return data for the schema.
const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

const app = express();
const httpServer = http.createServer(app);

// Set up Apollo Server
const server = new ApolloServer({
  typeDefs,
  resolvers,
  plugins: [ApolloServerPluginDrainHttpServer({ httpServer })],
});
await server.start();

app.use(
  cors(),
  express.json(),
  expressMiddleware(server),
);

await new Promise((resolve) => httpServer.listen({ port: 4000 }, resolve));
console.log(`🚀 Server ready at http://localhost:4000`);
```

现在运行您的服务器 :

```
node server.mjs
```

打开它在网页浏览器中打印的 URL 。 它会显示 [阿波罗沙盒](https://www.apollographql.com/docs/studio/explorer/sandbox/),用于运行 GraphQL 操作的网络工具。 尝试运行操作 `query { hello }`来啊!

## 常见问题

### @apollo/server 是什么？

阿波罗 GraphQL 服务器的核心引擎

### 如何安装 @apollo/server？

在项目目录运行 npm install @apollo/server，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：graphql（^16\.11\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @apollo/server 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @apollo/server 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @apollo/server 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @apollo/server 可以商用吗？

@apollo/server 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @apollo/server 的下载量有多少？

根据 npm 官方下载统计，@apollo/server 在 2026/10/07 – 2026/11/05 这 30 天内被下载 12,652,579 次，日均约 421,753 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @apollo/server 还在维护吗？

最新版本 5\.5\.1 发布于 2026/05/06（6 个月前）；至今共发布 80 个版本，其中过去 12 个月发布了 6 个；首次发布于 2019/09/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

