parent
0f25746a87
commit
9e5e4ae241
@ -1,11 +1,16 @@ |
||||
import { Module } from "@nestjs/common"; |
||||
import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common"; |
||||
import { AppController } from "./app.controller"; |
||||
import { AppService } from "./app.service"; |
||||
import { CatsModule } from "./cats/cats.module"; |
||||
import { LoggerMiddleware } from "./logger/logger.middleware"; |
||||
|
||||
@Module({ |
||||
imports: [CatsModule], |
||||
controllers: [AppController], |
||||
providers: [AppService], |
||||
}) |
||||
export class AppModule {} |
||||
export class AppModule implements NestModule { |
||||
configure(consumer: MiddlewareConsumer) { |
||||
consumer.apply(LoggerMiddleware).forRoutes("*"); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,7 @@ |
||||
import { LoggerMiddleware } from './logger.middleware'; |
||||
|
||||
describe('LoggerMiddleware', () => { |
||||
it('should be defined', () => { |
||||
expect(new LoggerMiddleware()).toBeDefined(); |
||||
}); |
||||
}); |
@ -0,0 +1,17 @@ |
||||
import { Injectable, Logger, NestMiddleware } from "@nestjs/common"; |
||||
import { Request, Response, NextFunction } from "express"; |
||||
|
||||
@Injectable() |
||||
export class LoggerMiddleware implements NestMiddleware { |
||||
private logger = new Logger("HTTP"); |
||||
|
||||
use(req: Request, res: Response, next: NextFunction) { |
||||
res.on("finish", () => { |
||||
this.logger.log( |
||||
`${req.ip} ${req.method} ${res.statusCode} ${req.originalUrl}`, |
||||
); |
||||
}); |
||||
|
||||
next(); |
||||
} |
||||
} |
Loading…
Reference in new issue