NestJS新手入门核心模块对比表笔记
侧边栏壁纸
  • 累计撰写 12 篇文章
  • 累计收到 1 条评论

NestJS新手入门核心模块对比表笔记

ASN__
2026-02-24 / 0 评论 / 9 阅读 / 正在检测是否收录...

NestJS新手入门核心模块对比表笔记

说明:表格严格遵循NestJS官方文档定义,重点标注各模块「声明函数/接口」「核心用法」,适配快速记忆,所有接口、装饰器均与官方保持一致,如内容有问题可以联系作者修改,谢谢。

模块名称官方核心定位声明函数/核心接口(必填)接口参数/核心方法官方核心装饰器执行时机官方核心作用
Controllers (控制器)请求处理入口,负责接收客户端请求并返回响应无强制接口,通过「类+装饰器」声明请求装饰器参数(路由路径、请求方法);处理方法接收请求参数@Controller()、@Get()、@Post()、@Param()、@Body()、@Query()请求进入后,中间件之后路由映射、请求接收、响应返回
Providers (提供者)可注入的依赖单元,封装业务逻辑(核心为Service)无接口,通过@Injectable()标记类即可声明自定义业务方法(如create、findAll),支持构造函数注入@Injectable()(必填,标记为可注入)被依赖组件(如Controller)调用时封装业务逻辑、解耦、支持依赖注入
Modules (模块)应用组织单元,管理模块内组件及依赖关系无接口,通过@Module()装饰器声明类@Module()配置对象(providers、controllers、imports、exports)@Module()(必填)、@Global()(可选,全局模块)应用启动时加载划分功能边界、管理依赖导入导出、组件共享
Middleware (中间件)请求处理流程中的中间层,可拦截请求/响应类式:implements NestMiddleware;函数式:直接声明函数use(req: Request, res: Response, next: NextFunction)(类式/函数式通用)@Injectable()(仅类式中间件必填)请求进入最前端,控制器之前日志记录、请求验证、跨域处理等通用逻辑
Exception Filters (异常过滤器)统一处理应用中未捕获的异常,格式化异常响应implements ExceptionFiltercatch(exception: any, host: ArgumentsHost)(必填方法)@Injectable()(必填)、@Catch()(必填,指定捕获的异常类型)发生未捕获异常时统一异常响应格式、自定义异常处理逻辑
Pipes (管道)处理控制器方法参数,实现参数验证、转换implements PipeTransform<T, R>(T:输入类型,R:输出类型)transform(value: T, metadata: ArgumentMetadata)(必填方法)@Injectable()(必填)控制器方法调用前,参数解析后参数验证、参数类型转换、数据格式化
Guards (守卫)请求授权控制,决定请求是否能进入控制器方法implements CanActivatecanActivate(context: ExecutionContext)(必填方法,返回布尔值)@Injectable()(必填)中间件之后,管道之前权限校验、角色控制、请求合法性判断
Interceptors (拦截器)面向切面编程,拦截控制器方法执行前后逻辑implements NestInterceptor<T, R>(T:输入,R:输出)intercept(context: ExecutionContext, next: CallHandler)(必填方法)@Injectable()(必填)管道之后,控制器方法执行前后日志记录、响应映射、异常映射、请求/响应拦截
Custom decorators (自定义装饰器)封装装饰器逻辑,扩展Nest装饰器功能参数装饰器:createParamDecorator;装饰器组合:applyDecoratorscreateParamDecorator((data, ctx) => { ... });applyDecorators(多个装饰器)无必填装饰器,可组合官方装饰器使用被装饰的类/方法/参数初始化时简化代码、复用装饰器逻辑、扩展官方功能
0

评论

博主关闭了所有页面的评论