Nestjs:除 /auth 之外所有路由的中间件

Spo*_*yne 8 regex middleware routes typescript nestjs

我最近开始使用 Nestjs,我想为除 auth 路由之外的所有路由应用中间件。

在文档中,它说我可以在我想要中间件的地方添加所有控制器或路由路径,但我发现这种方式非常昂贵

.forRoutes(
     SearchController,
     Other,
     Other,
     Other
);
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有解决方案,或者您是否设法使用正则表达式来实现以下目的:

.forRoutes(
    {path: 'All route except /auth', method: RequestMethod.ALL}
);
Run Code Online (Sandbox Code Playgroud)

den*_*maz 8

现在我们使用该功能exclude

export class YourModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(YourMiddleware)
      .exclude('auth')
      .forRoutes('*');
  }
}
Run Code Online (Sandbox Code Playgroud)

欲了解更多: https: //docs.nestjs.com/middleware#exclusion-routes


zah*_*ikh 6

文档:https: //docs.nestjs.com/middleware 标题:排除路由

export class AppModule implements NestModule {
      configure(consumer: MiddlewareConsumer) {
        consumer.apply(LoggerMiddleware).forRoutes('*')
        consumer.apply(tokenVerify).exclude('/auth').forRoutes('*')
    } }
Run Code Online (Sandbox Code Playgroud)

/auth/(.*)如果您有/auth/login、等路线,请使用/auth/register