Как передать параметры функции use внутри промежуточного программного обеспечения при использовании промежуточного программного обеспечения в Nest js

#javascript #express #nestjs

Вопрос:

Как я могу передать параметры отсюда

 export class NotificationModule implements NestModule{
  public configure(consumer: MiddlewareConsumer) {
    consumer.apply(AuthMiddleware).forRoutes(
        {path: 'notification/create', method: RequestMethod.POST},
 

И как я могу использовать переданные параметры здесь

 @Injectable()
export class AuthMiddleware implements NestMiddleware {
    constructor(private readonly studentService: StudentService) {
    }

    async use(req: Request, res: Response, next: NextFunction) {
       ????????
    }
 

Ответ №1:

поскольку промежуточные ПРОГРАММЫ являются инъекционными, вы можете передавать параметры как любой другой поставщик, подобный этому, в котором параметры передаются в модуле здесь

или используйте create-nestjs-middleware-module для превращения промежуточных программ в модули

или сделайте миксин, который вернет промежуточное программное обеспечение. Таким образом, вы передадите такие опции, как consumer.apply(CreateAuthMiddleware(opts))