@evanion/nestjs-correlation-id

中文文档
2.1.1发布于 2026/10/18MITTypeScriptES Module构建来源已验证近 30 天下载 2479

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

中文使用文档
文档目录4 节
  1. 能力
  2. 所需经费和安装
  3. 文档
  4. 许可证

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

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

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

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

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作为转发的可选依赖.

npm install @evanion/nestjs-correlation-id

文档

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

👉 docs.evanion.com/nestjs-correction-id (中文(简体) )

许可证

麻省理工学院

版本与发布记录

@evanion/nestjs-correlation-id 共发布 7 个版本,首次发布于 2022/07/11;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.1.1latest2026/10/1826 天前
2.1.02026/09/291 个月前
2.0.02026/09/112 个月前
1.1.02023/08/013 年前
1.0.42023/05/203 年前
1.0.32022/07/114 年前

关于 @evanion/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 和提交记录判断。