定义一个中间件套路
class 中间件01 implements NestMiddleware{
use(req: Request, res: Response, next: NextFunction) {
console.log('Request...');
next();
}
}
使用
@Module({ imports: [CatsModule], })
export class 我的模块 implements NestModule {
configure(consumer: MiddlewareConsumer) {
//知道给那些路由使用这个中间件
consumer .apply(LoggerMiddleware) .forRoutes('cats');
}
}
进阶问题
1.中间件的顺序 如何排序? 中间件01 中间件02 中间件03
consumer.apply(中间件01,中间件02,中间件03) .forRoutes('cats');
来排序
如果 中间件02 next(); 不触发
中间件02-->中间件03 后面的03会执行中间件吗? 答案是不会 我们的next(/xxx) 可以接受一个路径 我们可以用来做场景 【符合条件的跳转界面到成功,不符合跳转到失败】
中间件可以做什么
1把某个变量放到全局req中 比如当前登录对象req.user
2暂时没有其他的想法 以后补充