Nestjs实战干货-概况-中间件-Middleware
在NestJS中,中间件是一种组织应用程序逻辑的方式,它可以拦截进入的请求和传出的响应。
以下是一个简单的NestJS中间件示例,它会记录每个请求的路径,并可以对请求进行预处理或后处理:
import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: NextFunction) {
console.log(`Request path: ${req.path}`);
// 可以在这里进行请求的预处理
// ...
// 继续执行下一个中间件或路由处理程序
next();
// 可以在这里处理响应的后处理
// ...
}
}
然后,你需要将这个中间件应用到你的模块或控制器中:
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { LoggerMiddleware } from './logger.middleware';
@Module({
// ... (controllers and providers)
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(LoggerMiddleware)
.forRoutes('*'); // 这里可以指定具体的路由或控制器
// .exclude(...); // 可以排除某些路由
}
}
在这个例子中,LoggerMiddleware
会被应用到所有路由上。你可以根据需要自定义中间件的功能,并且可以使用consumer
对象来决定中间件应该应用于哪些路由以及排除哪些路由。
评论已关闭