Skip to content

Lost context data using Typeorm logQuerySolw #70

@ahuijiLearning

Description

@ahuijiLearning
// context.middleware.ts
export const ctxSession = cls.createNamespace('my session');

@Injectable()
export class RequestContextMiddleware implements NestMiddleware<Request, Response> {
  use(req: Request, res: Response, next: () => void) {
    ctxSession.run(() => {
      ctxSession.set('ctx', {
        req,
        res,
        startTime: new Date()
      });
      next();
    });

  }
}

// typeorm-logger.ts
export class OrmLogger implements Logger {
 logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner) {
    console.log('startTime', ctxSession.get('ctx')?.startTime);   // output > startTime 2022-04-13T09:54:21.628Z
 }
 logQuerySlow(time: number, query: string, parameters?: any[], queryRunner?: QueryRunner) {
    console.log('startTime', ctxSession.get('ctx')?.startTime);   // output > startTime undefined
 }
}

Why does this problem occur and is there a solution?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions