nestjs辅助类之ContextCreator类

NestJS中的ContextCreator抽象类在Guard、Interceptor、Pipe中起到关键作用,主要用于获取控制器和方法的实例数组。它包含createConcreteContext、getGlobalMetadata和createContext等方法,其中createConcreteContext需子类实现,getGlobalMetadata处理全局元数据,createContext用于创建上下文实例。对于Guard和Interceptor,ContextCreator用于从类获取实例,而Pipe则直接获取实例。
摘要由CSDN通过智能技术生成

在nestjs中Guard、Interceptor、Pipe三者都是在控制器中使用的,其中Guard、Interceptor使用方式类似,ContextCreator用来获取指定控制器对象、指定方法对象的实例数组

 

@nestjs/core/helpers/context-creator.ts

import 'reflect-metadata';
import iterate from 'iterare';
import { Controller } from '@nestjs/common/interfaces';
import { isUndefined, isFunction } from '@nestjs/common/utils/shared.utils';
import { ApplicationConfig } from './../application-config';

/*上下文创建器,用来获取全局、类、方法上的元数据
  一般用来获取UseGuards、UseInterceptors定义的元数据
*/
export abstract class ContextCreator {
    /*创建类数组的实例数组 */
    public abstract createConcreteContext<T extends any[], R extends any[]>(metadata: T): R;
    /*获取全局元数据 */
    public ge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值