# controller-nestjs **Repository Path**: wuzhongwei.com/controller-nestjs ## Basic Information - **Project Name**: controller-nestjs - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-14 - **Last Updated**: 2025-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### http://zhufengpeixun.com/nestjs/html/5.nest.html ### https://juejin.cn/post/7468277666350268416 path模块 import 'reflect-metadata' // 元数据的命令式定义,定义对象或属性的元数据 Reflect.defineMetadata(metadataKey, metadataValue, target) Reflect.defineMetadata(metadataKey, metadataValue, target, propertyKey) // 检查对象或属性的原型链上是否存在元数据键 let result = Reflect.hasMetadata(metadataKey, target) let result = Reflect.hasMetadata(metadataKey, target, propertyKey) // 检查对象或属性是否存在自己的元数据键 let result = Reflect.hasMetadata(metadataKey, target) let result = Reflect.hasMetadata(metadataKey, target, propertyKey) // 获取对象或属性原型链上元数据键的元数据值 let result = Reflect.getMetadata(metadataKey, target) let result = Reflect.getMetadata(metadataKey, target, propertyKey) // 获取对象或属性的自己的元数据键的元数据值 let result = Reflect.getOwnMetadata(metadataKey, target) let result = Reflect.getOwnMetadata(metadataKey, target, propertyKey) // 获取对象或属性原型链上的所有元数据键 let result = Reflect.getMetadataKeys(target) let result = Reflect.getMetadataKeys(target, propertyKey) // 获取对象或属性的所有自己的元数据键 let result = Reflect.getOwnMetadataKeys(target) let result = Reflect.getOwnMetadataKeys(target, propertyKey) // 从对象或属性中删除元数据 let result = Reflect.deleteMetadata(metadataKey, target) let result = Reflect.deleteMetadata(metadataKey, target, propertyKey) // 通过装饰器将元数据应用于构造函数 @Reflect.metadata(metadataKey, metadataValue) class C { // 通过装饰器将元数据应用于方法(属性) @Reflect.metadata(metadataKey, metadataValue) method() { } } # 知识点:参数装饰器装饰controller的话是类,装饰方法是对象也就是类的原型 # controller 里用service服务的话需要在providers注入service服务 # 要想写公共模块,可以用imports导入。定义用providers,并且要exports导出才能使用 # 过滤器用来过滤响应,管道用来过滤请求,中间件用来判断路由,守卫可以用来做权限处理,拦截器(AOP)可以用来处理响应结果 # zod对象架构的验证,class-validator, class-tranformer # 请求->中间件=>守卫=>管道=>拦截器前=>路由处理程序=>拦载器后->异常过滤器=>响应 [Nest] 3460 - 2025/01/14 09:45:56 LOG [NestFactory] Starting Nest application... [Nest] 3460 - 2025/01/14 09:45:56 LOG [InstanceLoader] AppModule dependencies initialized +11ms [Nest] 3460 - 2025/01/14 09:45:56 LOG [RoutesResolver] AppController {/}: +5ms [Nest] 3460 - 2025/01/14 09:45:56 LOG [RouterExplorer] Mapped {/, GET} route +3ms [Nest] 3460 - 2025/01/14 09:45:56 LOG [NestApplication] Nest application successfully started +3ms