Files
cyh-tk-backend/middleware/request-id.middleware.ts
zhxiao1124 4eff4d877e refactor: 完成项目整体目录重构与路径别名配置
1.  重构项目文件结构,统一文件存放位置与命名规则
2.  配置tsconfig路径别名,替换原有相对路径导入
3.  迁移drama-status枚举到dramas.types统一管理
4.  新增全局配置文件与工具类,补充完整注释与文档
5.  修复所有导入路径与依赖引用问题
2026-07-02 19:17:56 +08:00

20 lines
779 B
TypeScript

/**
* RequestId middleware.
* @file 请求链路 ID 中间件
* @module middleware/request-id.middleware
* @author zhxiao1124
*/
import { NextFunction, Request, Response } from "express";
import { validate as validateUuid, version as uuidVersion, v4 as uuidv4 } from "uuid";
export function RequestIdMiddleware(request: Request & { requestId?: string; startTime?: bigint }, response: Response, next: NextFunction) {
const incomingRequestId = request.get("x-request-id");
const requestId = incomingRequestId && validateUuid(incomingRequestId) && uuidVersion(incomingRequestId) === 4 ? incomingRequestId : uuidv4();
request.requestId = requestId;
request.startTime = process.hrtime.bigint();
response.setHeader("X-Request-Id", requestId);
next();
}