前言,小编最近在学习NestJS系列相关知识,想把自己了解到的知识点作为笔记的同时也分享给大家,本篇涉及的是与自定义装饰器相关的知识,如果有哪里写的不好的话还恳请各位掘友批评指正谢谢,小编将不胜感激,闲话不多说,我们直接步入正题吧...
-
[系列阅读 ]
-
[ 源代码地址] -GitHub仓库地址
自定义装饰器
NestJS中的自定义装饰器是一种强大的功能,允许你创建可重用的代码片段,以增强或修改类、方法、属性或参数的行为。自定义装饰器可以帮助你实现横切关注点,如日志记录、权限检查、参数验证等,而不需要修改原有的代码逻辑。
以下是NestJS中自定义装饰器的一些关键点和示例:
-
装饰器类型:
- 类装饰器
- 方法装饰器
- 属性装饰器
- 参数装饰器
-
创建自定义装饰器:
使用TypeScript的装饰器工厂函数来创建自定义装饰器。
-
常见用途:
- 元数据注入
- 参数验证
- 角色和权限检查
- 日志记录
- 异常处理
自定义权限装饰器
现在我们来把上一节守卫中的 SetMetadata 封装成一个自定义装饰器:
原本的代码样例如下
封装逻辑如下
使用自定义装饰器
测试
成功获取到admin信息
自定义参数装饰器
实现一个自定义参数装饰器返回一个url
使用
发起请求
打印结果