【NestJS】中间件
在NestJS中,中间件是一种组织应用程序的方式,它可以拦截进入的请求和传出的响应。中间件函数可以访问HTTP请求和响应对象,并可以执行一些操作,例如日志记录、身份验证、响应缓冲等。
以下是一个简单的NestJS中间件示例:
import { Injectable, NestMiddleware } from '@nestjs/common';
@Injectable()
export class MyMiddleware implements NestMiddleware {
use(req: any, res: any, next: () => void) {
// 在处理请求之前可以执行的操作
console.log('Request comes in...');
// 必须调用next()来继续执行后续中间件或路由处理器
next();
// 在处理请求之后可以执行的操作
console.log('Request is handled.');
}
}
然后,你需要将这个中间件应用到你的模块或控制器中:
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { MyMiddleware } from './my.middleware';
@Module({
// ... (controllers and providers)
})
export class MyModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(MyMiddleware)
.forRoutes('*'); // 这里可以指定具体的路由或控制器
}
}
在上述代码中,MyMiddleware
是自定义的中间件,它实现了NestMiddleware
接口。在MyModule
中,通过configure
方法将MyMiddleware
应用到所有路由上。你也可以通过forRoutes
方法指定特定的路由或控制器。
评论已关闭