针对User装饰器获取数据更进一步,直接拿user里面的数据,给一个字段给它,让它帮忙拿一下,这样就不用自己拿了。

This commit is contained in:
Jeremy Yin 2019-06-20 22:17:25 +08:00
parent 48a48e0a4c
commit 0833a38d69
2 changed files with 12 additions and 1 deletions

View File

@ -0,0 +1,7 @@
import { createParamDecorator } from '@nestjs/common'
export const User = createParamDecorator((data, req) => {
console.log('data:', data)
return req.user[data]
})

View File

@ -4,6 +4,7 @@ import { DemoService } from './providers/demo/demo.service'
import { DemoFilter } from '../../core/filters/demo.filter' import { DemoFilter } from '../../core/filters/demo.filter'
import { DemoAuthGuard } from '../../core/guards/demo-auth.guard' import { DemoAuthGuard } from '../../core/guards/demo-auth.guard'
import { Roles } from '../../core/decorators/roles.decorator' import { Roles } from '../../core/decorators/roles.decorator'
import { User } from '../../core/decorators/user.decorator'
import { LoggingInterceptor } from '../../core/interceptors/logging.interceptor' import { LoggingInterceptor } from '../../core/interceptors/logging.interceptor'
import { TransformInterceptor } from '../../core/interceptors/transform.interceptor' import { TransformInterceptor } from '../../core/interceptors/transform.interceptor'
import { ErrorsInterceptor } from '../../core/interceptors/errors.interceptor' import { ErrorsInterceptor } from '../../core/interceptors/errors.interceptor'
@ -39,7 +40,10 @@ export class PostsController {
// @SetMetadata('roles', ['member', 89]) // @SetMetadata('roles', ['member', 89])
// @Roles('member', 'tester') // @Roles('member', 'tester')
@Roles(...['member', 'tester']) @Roles(...['member', 'tester'])
store(@Body() post: CreatePostDto) { store(@Body() post: CreatePostDto, @User('roles') roles) {
console.log('roles:', roles)
// throw new HttpException('没有权限!', HttpStatus.FORBIDDEN) // throw new HttpException('没有权限!', HttpStatus.FORBIDDEN)
// throw new ForbiddenException('没有权限!') // throw new ForbiddenException('没有权限!')
this.demoService.create(post); this.demoService.create(post);