# @aiondigital/messaging-queues 中文文档

规范地址：https://npmcn.com/package/%40aiondigital/messaging-queues/

版本：1\.1\.5
npm 元数据更新时间：2024-04-29T18:43:24.470Z
中文译文更新时间：2026-11-06T23:05:56.990Z
软件包许可：ISC

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

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

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

- 包体积（解压后）：180 kB，75 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@nestjs/common ^10\.2\.7，@nestjs/core ^10\.2\.7，amqplib ^0\.10\.3，bull ^3\.3 \|\| ^4\.0\.0
- 首次发布：2023-10-15T14:26:26.976Z
- 最新版本发布：2024-04-29T18:43:24.295Z
- 近 30 天下载量：2194（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 0 个）

## 中文简介

基于不同消息经纪人的邮件队列

## 安装

```sh
npm install @aiondigital/messaging-queues
```

也可以使用：`pnpm add @aiondigital/messaging-queues`、`yarn add @aiondigital/messaging-queues`、`bun add @aiondigital/messaging-queues`

## README

# NestJS 通讯模块

这是一个 npm 软件包,用于管理 NestJS 应用程序中的邮件 。 它提供了一个在您的 NestJS 应用程序中配置消息选项和发送不同服务消息的方法.

## 安装

您可以使用 npm 或纱线安装此软件包 :

```bash
npm install @aiondigital/messaging-queues
# or
yarn add @aiondigital/messaging-queues
```

## 使用/实例

要在全球配置模块, 您可以使用 `MessagingModule.forRootAsync` 方法。 这样您就可以为您的应用程序设置消息选项 .

```
import { MessagingModule } from '@aiondigital/messaging-queues';
import { ConfigurationService } from './configuration.service';

@Module({
  imports: [CommonModule],
  imports: [
    MessagingModule.forRootAsync({
      useFactory: (_config: ConfigurationService) => {
        return _config.MESSAGING_OPTIONS;
      },
      inject: [ConfigurationService],
    }),
  ],
})
export class YourModule {}

```

这个 `MESSAGING_OPTIONS` 对象应当有以下字段:

-   过期秒( 可选): 指定信件到期时间的编号 .
-   死信交换:死信交换的名称.
-   死字队列:死字队列的名称.
-   经纪人Type:代表经纪人类型的值(如"redis"或"rabbitmq").
-   rabbitmq(可选):如果经纪Type被设定为"rabbitmq",则为RabbitMQ的额外配置.
-   redis (可选): Redis 的额外配置,如果经纪Type被设定为"redis".

## 发送信件

您可以使用 Message Service 发送来自您 NestJS 应用程序中不同服务的信息 。 首先,您需要注册队列 :

```
import { MessagingModule } from '@aiondigital/messaging-queues';

@Module({
  imports: [MessagingModule.registerQueue({
    name: ROUTING_KEYS.ADD_AUDIT_LOG,
    exchangeName: EXCHANGE.AUDIT,
  })],
})
export class YourModule {}

```

然后,在你的服务, 你可以使用 `MessagingService` 发送信件 :

```
import { Injectable } from '@nestjs/common';
import { MessagingService } from '@aiondigital/messaging-queues';

@Injectable()
export class YourService {
  constructor(private readonly messagingService: MessagingService) {}

  sendLogs(input) {
    this.messagingService.sendMessage(ROUTING_KEYS.ADD_AUDIT_LOG, input);
  }
}

```

就这样! 您已经为邮件模块设置了全局配置, 可以使用 `MessagingService` 从您的 NestJS 服务发送消息.

## 信件处理

### 级级装饰

在类层面上,您可以使用@Processor 装饰器来指定该类将负责处理的路由密钥. 这是你如何使用它:

```
import { Processor } from '@aiondigital/messaging-queues';

@Processor(ROUTING_KEYS.ADD_AUDIT_LOG)
export class YourMessageProcessor {
  // Your message processing methods go here
}

```

### 函数级装饰器

对于单个信件处理方法,您可以使用 `@Process` 指定信件处理细节的装饰. 这是你如何使用它:

```
import { Process } from '@aiondigital/messaging-queues';
import { CreateAuditLogInput } from './create-audit-log.dto';

@Process({
  name: '', // Give it a unique name
  exchangeName: EXCHANGE.AUDIT,
  routingKey: ROUTING_KEYS.ADD_AUDIT_LOG,
})
async auditlog(data: CreateAuditLogInput, done: AckCallback) {
  // Your message processing logic here
  try {
    const audit = await this.auditService.create(data, ['id']);
    return audit;
  } catch (error) {
    this.#logger.error(`Failed to add audit log: [${JSON.stringify(data)}]`);
    this.#logger.error(error);
    done(error);
  }
}
```

你应该把 `@Process` 使用特定路由键处理消息的方法的装饰器。 在同一类中,可以有多种使用不同路由键的方法.

记住替换占位符(`ROUTING_KEYS.ADD_AUDIT_LOG`, (中文(简体) ), `EXCHANGE.AUDIT`以申请中的实际数值表示.

现在 `YourMessageProcessor` 类将处理信件,其中包含在 `@Processor` 装饰者,以及 `auditlog` 方法将使用您指定的路由键处理信件 `@Process` 装饰师.

## 许可证

此软件包将在 [MIT 许可证](https://choosealicense.com/licenses/mit/)

## 常见问题

### @aiondigital/messaging-queues 是什么？

基于不同消息经纪人的邮件队列

### 如何安装 @aiondigital/messaging-queues？

在项目目录运行 npm install @aiondigital/messaging-queues，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@nestjs/common（^10\.2\.7）、@nestjs/core（^10\.2\.7）、amqplib（^0\.10\.3）、bull（^3\.3 \|\| ^4\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aiondigital/messaging-queues 支持 TypeScript 吗？

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

### @aiondigital/messaging-queues 支持 ESM 还是 CommonJS？

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

### @aiondigital/messaging-queues 可以商用吗？

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

### @aiondigital/messaging-queues 的下载量有多少？

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

### @aiondigital/messaging-queues 还在维护吗？

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

