用户登录

自由学三年,把想法变成现实。33 折优惠(最后 6 天), 现在订阅 →

在这个 store 方法的上面,现在用了 @SetMetadata 给这个方法附加了一个叫 roles 的数据,然后设置了一下数据的具体的值。在其它地方你需要重复这样做,我们可以自己定义一个装饰器,这样用起来更方便一些。

在终端 ,执行 nest generate,生成一个 decorator ,名字是 roles, 放在 core/decorators 的下面。

回到项目,找到创建的这个装饰器。

它其实就是一个函数, 函数接收不限个数的参数,返回的值就是 SetMetadata ,这里可以设置一下数据的名字,设置成了 roles, 还有一个参数值, 在上面从 @nestjs/common 里面把 SetMetadata 拿出来。

打开 posts.controller ,找到 store 方法, 这里现在我们可以直接使用刚才自定义的装饰器,@Roles, 给它的值设置成 member。

在客户端, 用 POST 方法请求 posts 地址, 发送请求,请求没有通过 demoRoles 守卫, 在请求里添加一个 x-demo 头部,值是 secret, 再发送一下这个请求, 这回通过了 demoRoles 守卫,成功创建了内容。

现在给这个请求的处理器方法上附加 roles 数据,用的是一个自定义的装饰器。

自定义装饰器《 Nest.js 应用框架:核心部件(2) 》

统计

10670
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点