本次提交进行了大规模的项目结构调整: 1. 调整文件目录归属,将模块代码按功能域重新组织 2. 删除多处冗余的DTO、实体类和模块文件 3. 统一了常量、装饰器、工具类的存放位置 4. 修复了`.gitignore`的日志目录匹配规则 5. 新增了健康检查、认证、用户、剧集、订单等核心业务模块
22 lines
665 B
TypeScript
22 lines
665 B
TypeScript
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();
|
|
}
|