nestjs中间件套路

127 阅读1分钟

定义一个中间件套路


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暂时没有其他的想法 以后补充