[TIL]NestJS学習16日目

836 ワード

パイプ操作


NestJSに内蔵されている@Bodyのようにcustom param decoratorを扱う.
これにより、パイプが動作します.
@Get()
async findOne(
  @User(new ValidationPipe({ validateCustomDecorators: true }))
  user: UserEntity,
) {
  console.log(user);
}

アクセサリーの設定


デコーダを構成するためのハルパーメソッドが用意されています.認証に関連するデコーダを結合すると、そうすることができます.
import { applyDecorators } from '@nestjs/common';

export function Auth(...roles: Role[]) {
  return applyDecorators(
    SetMetadata('roles', roles),
    UseGuards(AuthGuard, RolesGuard),
    ApiBearerAuth(),
    ApiUnauthorizedResponse({ description: 'Unauthorized' })
  );
}
そして
@Get('users')
@Auth('admin')
findAllUsers() {}
@Authで使用できます.