本文档提供了对 NestJS 高级功能的深入概述,这些功能扩展了框架的核心功能。这些功能使开发人员能够实现超越基本 API 创建的复杂需求。本页面涵盖 API 文档、文件上传、身份验证、实时通信、后台处理、缓存等。
有关核心架构组件的信息,请参阅 核心架构,有关特定数据库集成,请参阅 数据库集成。
NestJS 提供了一个丰富的先进功能生态系统,可与其核心架构无缝协作。这些功能旨在解决现代应用程序开发中的常见挑战,同时保持 NestJS 的模块化和可测试性理念。
来源:sample/11-swagger/package.json, sample/19-auth-jwt/package.json, sample/26-queues/package.json, sample/27-scheduling/package.json, sample/20-cache/package.json
NestJS 通过 @nestjs/swagger 包为 Swagger (OpenAPI) 文档提供一流的支持。此集成可直接从您的代码和装饰器自动生成 API 文档。
Swagger 模块分析您的应用程序结构,包括控制器、方法和 DTO,并自动生成 OpenAPI 文档。
@ApiOperation() 和 @ApiResponse() 等装饰器记录端点@ApiSecurity() 定义身份验证方案在 NestJS 应用程序中集成 Swagger
SwaggerModule 会自动检查路由处理程序,识别请求和响应模式,并生成相应的文档。
来源:sample/11-swagger/package.json
NestJS 通过与 Passport 和 JWT 等行业标准库的集成,提供强大的身份验证和授权功能。
来源:sample/19-auth-jwt/package.json
NestJS 通过 WebSockets 和 Server-Sent Events (SSE) 支持实时双向通信。
对于单向服务器到客户端通信,NestJS 支持 Server-Sent Events,允许服务器通过 HTTP 将更新推送到客户端。
来源:package.json
NestJS 提供了强大的工具来处理后台任务、延迟处理和计划任务。
来源:sample/26-queues/package.json, sample/27-scheduling/package.json
NestJS 提供了一个灵活的缓存系统,可以通过存储和重用计算结果来提高应用程序性能。
来源:sample/20-cache/package.json
NestJS 通过与 Multer 等库集成,提供了对文件处理的原生支持。
来源:package.json
NestJS 的动态模块系统允许灵活、可配置的模块创建,并在注册时具有可自定义的行为。
来源:sample/25-dynamic-modules/package.json
NestJS 提供了一个强大的序列化系统,可在对象作为 API 响应返回之前对其进行转换。
来源:sample/21-serializer/package.json
NestJS 通过 @nestjs/graphql 包提供与 GraphQL 的一流集成。
有关 GraphQL 实现的更详细信息,请参阅 GraphQL。
来源:sample/12-graphql-schema-first/package.json, sample/23-graphql-code-first/package.json, sample/22-graphql-prisma/package.json
NestJS 通过直接使用 Mongoose 和 @nestjs/mongoose 包提供与 MongoDB 的高级集成。
有关数据库集成的更详细信息,请参阅 数据库集成。
来源:sample/06-mongoose/package.json, sample/14-mongoose-base/package.json
NestJS 的高级功能为开发人员提供了强大的工具来应对复杂的应用程序需求。在实现这些功能时,请考虑以下最佳实践:
通过利用这些高级功能,开发人员可以在构建健壮、可扩展的应用程序的同时,保持 NestJS 所倡导的清晰架构。