# @algoan/nestjs-google-pubsub-microservice 中文文档

规范地址：https://npmcn.com/package/%40algoan/nestjs-google-pubsub-microservice/

版本：3\.2\.0
npm 元数据更新时间：2026-09-24T13:31:16.405Z
中文译文更新时间：2026-11-05T22:50:15.159Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40algoan/nestjs-google-pubsub-microservice
原文对照：https://npmcn.com/package/%40algoan/nestjs-google-pubsub-microservice/?lang=original
项目主页：https://github.com/algoan/nestjs-components/tree/master/packages/google-pubsub-microservice#readme
源码仓库：https://github.com/algoan/nestjs-components

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

- 包体积（解压后）：13.7 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@nestjs/core \>=8，@algoan/pubsub \>=4 \< 7，@nestjs/common \>=8，@nestjs/microservices \>=8
- 首次发布：2020-04-22T09:15:35.363Z
- 最新版本发布：2026-09-24T13:31:15.605Z
- 近 30 天下载量：10726（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：30（近 12 个月 1 个）

## 中文简介

与 NestJS Microservice 的 GooglePubSub 运输策略

## 安装

```sh
npm install @algoan/nestjs-google-pubsub-microservice
```

也可以使用：`pnpm add @algoan/nestjs-google-pubsub-microservice`、`yarn add @algoan/nestjs-google-pubsub-microservice`、`bun add @algoan/nestjs-google-pubsub-microservice`

## README

[![Nest Logo](https://nestjs.com/img/logo_text.svg)](http://nestjs.com/)

A 类 [鸟巢](https://github.com/nestjs/nest) 谷歌PubSub微服务.

# NestJS Google Cloud PubSub 微服务

习惯 [NestJS 微服务](https://docs.nestjs.com/microservices/basics) 运输战略 [Google Cloud PubSub (Google Cloud PubSub) (英语)](https://cloud.google.com/pubsub/docs)。 。 。 .

## 安装

```bash
npm install --save @algoan/pubsub @algoan/nestjs-google-pubsub-microservice
```

## 使用量

要启动一个新的 Google Cloud PubSub 服务器:

**服务器设置**数字 :

```typescript
// main.ts
import { GooglePubSubOptions } from '@algoan/pubsub';
import { INestMicroservice } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { GCPubSubServer } from '@algoan/nestjs-google-pubsub-microservice';
import { AppModule } from './app.module';

async function bootstrap() {
  const options: GooglePubSubOptions = {
    projectId: 'test',
    subscriptionsPrefix: 'test-app',
  }

  const app: INestMicroservice = await NestFactory.createMicroservice(AppModule, {
    strategy: new GCPubSubServer(options)
  })

  await app.listen();

  console.log('Server running!')
}
bootstrap()
```

**主计长**数字 :

```typescript
import { EmittedMessage } from '@algoan/pubsub';
import { Controller } from '@nestjs/common';
import { EventPattern, Payload } from '@nestjs/microservices';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  /**
   * Handle the test event
   * @param data Payload sent
   */
  @EventPattern('test_event')
  public async handleTestEvent(@Payload() data: EmittedMessage<{ hello: string }>): Promise<void> {
    /**
     * Handle data emitted by Google PubSub
     */
    this.appService.handleTestEvent(data);
  }
}
```

### 事件临时额外项目

您可以添加 [`ListenOptions`](https://github.com/algoan/pubsub#pubsublistenevent-opts) 添加 `extras` 页:1 `EventPattern` 装饰. 例如,如果想要不同的主题名称:

```typescript
/**
  * Handle the test event
  * @param data Payload sent
  */
@EventPattern('test_event', { topicName: 'different_topic' })
public async handleTestEvent(@Payload() data: EmittedMessage<{ hello: string }>): Promise<void> {
  /**
    * Handle data emitted by Google PubSub
    */
  this.appService.handleTestEvent(data);
}
```

当应用程序启动并查找事件模式时,它将获得或创建 `different_topic` 来自Google Cloud的话题.

## API 密码

此模块使用 [@algoan/pubsub (英语)](https://github.com/algoan/pubsub) 默认自动确认已发送信件的库.

### `GCPubSubServer(options)`

创建 Google PubSub 的新服务器实例 。 它检索所有信件处理器模式并创建 [订阅](https://cloud.google.com/pubsub/docs/pull)。 。 。 .

-   `options`: Algoan PubSub 选项. 更多信息 [这里](https://github.com/algoan/pubsub/#pubsubfactorycreate-transport-options-)。 。 。 .
-   `options.listenOptions`: 将适用于所有订阅的全球选项.
-   `options.topicsNames`: 只订阅此白名单中包含的主题 .

## 其他 NestJS Google Cloud PubSub 服务器

使用 NestJS 微服务实施 Google Cloud PubSub 的其他模块:

-   [(原始内容存档于2017-10-21) (英语). crallen/nestjs-google-pubsub](https://github.com/crallen/nestjs-google-pubsub)
-   [ecobee/nodejs-gcloud-pubsub-module (英语:](https://github.com/ecobee/nodejs-gcloud-pubsub-module)

## 常见问题

### @algoan/nestjs-google-pubsub-microservice 是什么？

与 NestJS Microservice 的 GooglePubSub 运输策略

### 如何安装 @algoan/nestjs-google-pubsub-microservice？

在项目目录运行 npm install @algoan/nestjs-google-pubsub-microservice，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@nestjs/core（\>=8）、@algoan/pubsub（\>=4 \< 7）、@nestjs/common（\>=8）、@nestjs/microservices（\>=8）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @algoan/nestjs-google-pubsub-microservice 支持 TypeScript 吗？

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

### @algoan/nestjs-google-pubsub-microservice 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @algoan/nestjs-google-pubsub-microservice 可以商用吗？

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

### @algoan/nestjs-google-pubsub-microservice 的下载量有多少？

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

### @algoan/nestjs-google-pubsub-microservice 还在维护吗？

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

