использование параметров пути в Nestjs Guard

1

Могу ли я получить параметры пути в функции защиты nestjs другим способом, чем просто искать необработанный объект запроса из контекста http?

что я хочу сделать, например,

@Patch(':id/someActionName')
  @UseGuards(SomeGuard)
    async activateRole(@Param('id') id,@Body() input: SomeObject): Promise<any> {
        //some logic
        return response;
    }

и мой SomeGuard получит значение параметра "id" и "input", входной параметр прост, но я не вижу простого способа получить "id",

Теги:
nestjs

1 ответ

0

В вашей защите вы можете получить доступ к параметрам маршрута, получив запрос из контекста следующим образом:

canActivate(context: ExecutionContext): boolean {
  const request = context.switchToHttp().getRequest();
  const params = request.params;
  const id = params.id; // automatically parsed
}

Это не было в документации, и у меня была такая же проблема, как и вы, и мне пришлось прорыть объект запроса.

  • 0
    Спасибо, узнайте также о порядке проверки и охраны, так что в моем случае использования он непригоден, потому что канал проверки работает после охранников, поэтому я не мог выполнить некоторые проверки в охранниках. Или мне придется выполнить их дважды в охране и в проверке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню