书写请求日志中间件
/**
* 调用日志中间价
*/
import { Injectable , NestMiddleware } from "@nestjs/common";
import { Request , Response } from 'express'
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
use(req:Request ,res:Response,next:()=>void){
const { method ,path } = req;
console.log(`${method} ${path}`);
next();
}
}
配置中间件
import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TemplateController } from './template/template.controller';
// 导入中间价
import { LoggerMiddleware} from './common/middleware/logger.middleware'
@Module({
imports: [],
controllers: [AppController, TemplateController, ],
providers: [AppService],
})
// 配置中间件
export class AppModule {
configure(consumer:MiddlewareConsumer){
// 为template添加中间价
consumer
.apply(LoggerMiddleware) // 应用中间件
.exclude({ // 排除的路径
path:'template',
method:RequestMethod.POST,
})
.forRoutes('template') // 监听路径
}
}