# @evanion/nestjs-correlation-id 中文文档

规范地址：https://npmcn.com/package/%40evanion/nestjs-correlation-id/

版本：2\.1\.1
npm 元数据更新时间：2026-10-18T12:21:54.188Z
中文译文更新时间：2026-11-14T02:48:08.640Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40evanion/nestjs-correlation-id
原文对照：https://npmcn.com/package/%40evanion/nestjs-correlation-id/?lang=original
项目主页：https://github.com/Evanion/libraries/tree/main/libs/nestjs-correlation-id#readme
源码仓库：https://github.com/Evanion/libraries

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

- 包体积（解压后）：47.9 kB，32 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：1 个
- peer 依赖：@nestjs/axios ^12\.0\.1，@nestjs/common ^12\.0\.0
- 首次发布：2022-07-11T06:58:46.696Z
- 最新版本发布：2026-10-18T12:21:53.767Z
- 近 30 天下载量：2479（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 3 个）

## 中文简介

NestJS的对接ID中间软件. 从收到的请求中取出一个ID 通过它等待的一切 并连接到即将到来的HTTP电话, 所以日志线横跨服务线.

## 安装

```sh
npm install @evanion/nestjs-correlation-id
```

也可以使用：`pnpm add @evanion/nestjs-correlation-id`、`yarn add @evanion/nestjs-correlation-id`、`bun add @evanion/nestjs-correlation-id`

## README

# @evanion/nestjs-correlation-id (英语)

**在您的 NestJS 微服务中透明地请求追踪 .**

调试分布式系统就像用三个不同框的片段解决一个谜题,当一个单一的用户动作触发一个服务链时,你被迫通过猜测时间戳来通过零碎的日志来打猎. `@evanion/nestjs-correlation-id` 解决此问题的方法是给每个收到的请求附加一个关联ID,并通过您的服务链转发它.

要在不作为函数参数传递的情况下看到标识符的跟踪,以下示例使用 `CorrelationService.run` 以模拟中间软件通常打开的请求上下文.

```ts
import { CorrelationService } from '@evanion/nestjs-correlation-id';

const lines: string[] = [];
const logger = { log: (line: string) => lines.push(line) };

class OrdersService {
  constructor(
    private readonly correlationService: CorrelationService,
    private readonly logger: { log(line: string): void },
  ) {}

  place(order: string) {
    const id = this.correlationService.getCorrelationId();
    this.logger.log(`Placing ${order} for request ${id}`);
  }
}

const correlation = new CorrelationService({
  header: 'X-Correlation-Id',
  generator: () => crypto.randomUUID(),
});
const orders = new OrdersService(correlation, logger);

correlation.run('storefront-4f1c9a', () => orders.place('order-2026-0042'));
orders.place('order-2026-0043');

lines; // -> ['Placing order-2026-0042 for request storefront-4f1c9a', 'Placing order-2026-0043 for request undefined']
```

## 能力

`@evanion/nestjs-correlation-id` 用途 `AsyncLocalStorage` 以确保身份识别在同时提出的请求之间保持隔离并生存下去 `await` 边框.

-   **转发**页:1 `HttpService` 注册 `withCorrelation()` 通过 Axios 截取器发送每一次通话的当前ID .
-   **上下文预览**: 请求链中任何地方都有相关标识——护卫、拦截器、控制器和服务.
-   **完全配置**: 自定义页眉名称( E)`X-Correlation-Id`),ID生成器,以及验证逻辑.
-   **兼容性**:中间软件运行于雀巢JS默认快车平台.

## 所需经费和安装

一揽子方案仅是无害环境管理,需要20号节点或更新。 用这个 `tslib` 作为它唯一的运行时间依赖 `@nestjs/common` 12作为同伴依赖 `@nestjs/axios` 12作为转发的可选依赖.

```bash
npm install @evanion/nestjs-correlation-id
```

## 文档

参考和综合指南全文请访问我们的文献网站:

👉 **[docs.evanion.com/nestjs-correction-id (中文(简体) )](https://docs.evanion.com/nestjs-correlation-id/)**

## 许可证

麻省理工学院

## 常见问题

### @evanion/nestjs-correlation-id 是什么？

NestJS的对接ID中间软件\. 从收到的请求中取出一个ID 通过它等待的一切 并连接到即将到来的HTTP电话, 所以日志线横跨服务线\.

### 如何安装 @evanion/nestjs-correlation-id？

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

### @evanion/nestjs-correlation-id 支持 TypeScript 吗？

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

### @evanion/nestjs-correlation-id 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @evanion/nestjs-correlation-id 需要什么版本的 Node\.js？

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

### @evanion/nestjs-correlation-id 可以商用吗？

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

### @evanion/nestjs-correlation-id 的下载量有多少？

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

### @evanion/nestjs-correlation-id 还在维护吗？

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

