书写请求日志中间件

    1. /**
    2. * 调用日志中间价
    3. */
    4. import { Injectable , NestMiddleware } from "@nestjs/common";
    5. import { Request , Response } from 'express'
    6. @Injectable()
    7. export class LoggerMiddleware implements NestMiddleware {
    8. use(req:Request ,res:Response,next:()=>void){
    9. const { method ,path } = req;
    10. console.log(`${method} ${path}`);
    11. next();
    12. }
    13. }

    配置中间件

    1. import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common';
    2. import { AppController } from './app.controller';
    3. import { AppService } from './app.service';
    4. import { TemplateController } from './template/template.controller';
    5. // 导入中间价
    6. import { LoggerMiddleware} from './common/middleware/logger.middleware'
    7. @Module({
    8. imports: [],
    9. controllers: [AppController, TemplateController, ],
    10. providers: [AppService],
    11. })
    12. // 配置中间件
    13. export class AppModule {
    14. configure(consumer:MiddlewareConsumer){
    15. // 为template添加中间价
    16. consumer
    17. .apply(LoggerMiddleware) // 应用中间件
    18. .exclude({ // 排除的路径
    19. path:'template',
    20. method:RequestMethod.POST,
    21. })
    22. .forRoutes('template') // 监听路径
    23. }
    24. }