Búsqueda de sitios web

regex - Nestjs: middleware para todas las rutas excepto /auth


He empezado con NestJS recientemente y quiero aplicar un middleware para todas las rutas, excepto la ruta de autenticación.

En la documentación dice que puedo agregar todos los controladores o rutas donde quiero el middleware, pero encuentro que esta forma es bastante costosa

.forRoutes(
     SearchController,
     Other,
     Other,
     Other
);

Así que me gustaría saber si hay una solución, o si lograste usar expresiones regulares para algo como esto:

.forRoutes(
    {path: 'All route except /auth', method: RequestMethod.ALL}
);

Respuesta #1

Hoy en día usamos la función exclude.

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

Para más información: https://docs.nestjs.com/middleware#excluding-routes

Respuesta #2

DOC: https://docs.nestjs.com/middleware TÍTULO: Exclusión de rutas

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

Usa /auth/(.*) en caso de que tengas rutas como /auth/login, /auth/register, etc.

Artículos relacionados