Skip to content

Commit 5aade8a

Browse files
committed
Add global class middleware in nest application for testing
1 parent 743d358 commit 5aade8a

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
1-
import { Module } from '@nestjs/common';
1+
import {MiddlewareConsumer, Module} from '@nestjs/common';
22
import { ScheduleModule } from '@nestjs/schedule';
33
import { SentryModule } from '@sentry/nestjs/setup';
44
import { AppController } from './app.controller';
55
import { AppService } from './app.service';
6+
import { LoggerMiddleware } from "./logger.middleware";
67

78
@Module({
89
imports: [SentryModule.forRoot(), ScheduleModule.forRoot()],
910
controllers: [AppController],
1011
providers: [AppService],
1112
})
12-
export class AppModule {}
13+
export class AppModule {
14+
configure(consumer: MiddlewareConsumer): void {
15+
console.log('Add class middleware.');
16+
consumer
17+
.apply(LoggerMiddleware)
18+
.forRoutes(AppController);
19+
}
20+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { Injectable, NestMiddleware } from '@nestjs/common';
2+
import { Request, Response, NextFunction } from 'express';
3+
4+
function delay(ms) {
5+
const start = Date.now();
6+
while (Date.now() - start < ms) {
7+
// Do nothing
8+
}
9+
}
10+
11+
@Injectable()
12+
export class LoggerMiddleware implements NestMiddleware {
13+
use(req: Request, res: Response, next: NextFunction) {
14+
console.log('Class middleware...');
15+
delay(500);
16+
next();
17+
}
18+
}

0 commit comments

Comments
 (0)