1. 重构项目文件结构,统一文件存放位置与命名规则 2. 配置tsconfig路径别名,替换原有相对路径导入 3. 迁移drama-status枚举到dramas.types统一管理 4. 新增全局配置文件与工具类,补充完整注释与文档 5. 修复所有导入路径与依赖引用问题
20 lines
779 B
TypeScript
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();
|
|
}
|