# @bufbuild/connect-node 中文文档

规范地址：https://npmcn.com/package/%40bufbuild/connect-node/

版本：0\.13\.0
npm 元数据更新时间：2026-09-16T06:38:27.121Z
中文译文更新时间：2026-11-08T18:26:07.332Z
软件包许可：Apache-2\.0

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

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

弃用说明：Connect has moved to its own org @connectrpc and has a stable v1\. Run \`npx @connectrpc/connect-migrate@latest\` to update\. See https://github\.com/connectrpc/connect-es/releases/tag/v0\.13\.1 for details\.

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

- 包体积（解压后）：376 kB，57 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16\.0\.0
- 运行依赖：2 个
- peer 依赖：@bufbuild/protobuf ^1\.2\.1
- 首次发布：2023-02-03T16:41:37.008Z
- 最新版本发布：2023-08-17T16:06:07.905Z
- 近 30 天下载量：91925（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 0 个）

## 中文简介

连接是一个图书馆大家庭,用于在不同语言和平台上建立和消费API,以及 [@ bufbuilding/ 连接](https://www.npmjs.com/package/@bufbuild/connect) 将带有Protobuf的安全型API带入TypeScript.

## 安装

```sh
npm install @bufbuild/connect-node
```

也可以使用：`pnpm add @bufbuild/connect-node`、`yarn add @bufbuild/connect-node`、`bun add @bufbuild/connect-node`

## README

# @ bufbuilding/ 连接- 节点

连接是一个图书馆大家庭,用于在不同语言和平台上建立和消费API,以及 [@ bufbuilding/ 连接](https://www.npmjs.com/package/@bufbuild/connect) 将带有Protobuf的 安全 API 带到 类型脚本 .

`@bufbuild/connect-node` 为Node.js提供下列适配器:

### 创建连接传输 ()

让您的客户端运行在节点.js上,与连接协议的服务器交谈:

```diff
import { createPromiseClient } from "@bufbuild/connect";
+ import { createConnectTransport } from "@bufbuild/connect-node";
import { ElizaService } from "./gen/eliza_connect.js";

+ // A transport for clients using the Connect protocol with Node.js `http` module
+ const transport = createConnectTransport({
+   baseUrl: "https://demo.connectrpc.com",
+   httpVersion: "1.1"
+ });

const client = createPromiseClient(ElizaService, transport);
const { sentence } = await client.say({ sentence: "I feel happy." });
console.log(sentence) // you said: I feel happy.
```

### 创建Grpc Transport ()

让您的客户端在 Node.js 上运行, 用 gRPC 协议与服务器交谈 :

```diff
import { createPromiseClient } from "@bufbuild/connect";
+ import { createGrpcTransport } from "@bufbuild/connect-node";
import { ElizaService } from "./gen/eliza_connect.js";

+ // A transport for clients using the gRPC protocol with Node.js `http2` module
+ const transport = createGrpcTransport({
+   baseUrl: "https://demo.connectrpc.com",
+   httpVersion: "2"
+ });

const client = createPromiseClient(ElizaService, transport);
const { sentence } = await client.say({ sentence: "I feel happy." });
console.log(sentence) // you said: I feel happy.
```

### 创建GrpcWeb Transport ()

让您的客户端在 Node.js 上运行, 用 gRPC-web 协议与服务器交谈 :

```diff
import { createPromiseClient } from "@bufbuild/connect";
+ import { createGrpcWebTransport } from "@bufbuild/connect-node";
import { ElizaService } from "./gen/eliza_connect.js";

+ // A transport for clients using the Connect protocol with Node.js `http` module
+ const transport = createGrpcWebTransport({
+   baseUrl: "https://demo.connectrpc.com",
+   httpVersion: "1.1"
+ });

const client = createPromiseClient(ElizaService, transport);
const { sentence } = await client.say({ sentence: "I feel happy." });
console.log(sentence) // you said: I feel happy.
```

### 连接节点Adapter ()

在节点上运行您的连接 RPC `http`, (中文(简体) ), `https`,或 `http2` 模块.

```ts
// connect.ts
import { ConnectRouter } from "@bufbuild/connect";

export default function(router: ConnectRouter) {
  // implement rpc Say(SayRequest) returns (SayResponse)
  router.rpc(ElizaService, ElizaService.methods.say, async (req) => ({
    sentence: `you said: ${req.sentence}`,
  }));
}
```

```diff
// server.ts
import * as http2 from "http2";
+ import routes from "connect";
+ import { connectNodeAdapter } from "@bufbuild/connect-node";

http2.createServer(
+ connectNodeAdapter({ routes }) // responds with 404 for other requests
).listen(8080);
```

通过该服务器运行,您可以使用任意 gRPC, gRPC-Web, 或连接客户端来提出请求 .

`buf curl` gRPC 协议:

```bash
buf curl --schema buf.build/connectrpc/eliza \
  --protocol grpc --http2-prior-knowledge \
  -d '{"sentence": "I feel happy."}' \
  http://localhost:8080/connectrpc.eliza.v1.ElizaService/Say
```

`curl` 与连接协议 :

```bash
curl \
    --header "Content-Type: application/json" \
    --data '{"sentence": "I feel happy."}' \
     --http2-prior-knowledge \
    http://localhost:8080/connectrpc.eliza.v1.ElizaService/Say
```

GRPC 协议的节点:

```ts
import { createPromiseClient } from "@bufbuild/connect";
import { createGrpcTransport } from "@bufbuild/connect-node";
import { ElizaService } from "./gen/eliza_connect.js";

const transport = createGrpcTransport({
  baseUrl: "http://localhost:8080",
  httpVersion: "2",
});

const client = createPromiseClient(ElizaService, transport);
const { sentence } = await client.say({ sentence: "I feel happy." });
console.log(sentence) // you said: I feel happy.
```

网页浏览器的客户端实际上与这个示例完全相同 - 它会 简单的使用 `createConnectTransport` 从 [@ bufbuilding/ 连接- web](https://www.npmjs.com/package/@bufbuild/connect-web) 换句话说.

## 开始

要开始连接,请前往 [文档](https://connectrpc.com/docs/node/getting-started) 用于教学,或查看 [我们的榜样](https://github.com/connectrpc/connect-es/tree/main/packages/example)。 。 。 .

## 常见问题

### @bufbuild/connect-node 是什么？

连接是一个图书馆大家庭,用于在不同语言和平台上建立和消费API,以及 @ bufbuilding/ 连接 将带有Protobuf的安全型API带入TypeScript\.注意：该包已被作者标记为弃用——Connect has moved to its own org @connectrpc and has a stable v1\. Run \`npx @connectrpc/connect-migrate@latest\` to update\. See https://github\.com/connectrpc/connect-es/releases/tag/v0\.13\.1 for details\.

### 如何安装 @bufbuild/connect-node？

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

### @bufbuild/connect-node 支持 TypeScript 吗？

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

### @bufbuild/connect-node 支持 ESM 还是 CommonJS？

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

### @bufbuild/connect-node 需要什么版本的 Node\.js？

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

### @bufbuild/connect-node 可以商用吗？

@bufbuild/connect-node 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @bufbuild/connect-node 的下载量有多少？

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

### @bufbuild/connect-node 还在维护吗？

最新版本 0\.13\.0 发布于 2023/08/18（3 年前）；至今共发布 16 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/02/04。作者已将其标记为弃用，新项目建议寻找替代方案。

