最近,Nest.js发布了其TypeScript框架的第6版。Nest.js 6 改进了对 GraphQL 的支持,还解耦了其框架特定于平台的部分,以支持超越其传统 Express 和基于 Node.js 架构的应用程序。
Nest.js 作者及 Trilon.io 联合创始人 Kamil Mysliwiec 解释了 Nest.js 6 中与 GraphQL 相关的变化:
GraphQL 应用程序最常见的问题之一是类型冗余。为了解决这个问题,我们在 Nest 以前的版本中添加了编译器,允许开发人员把 SDL 定义编译为 TypeScript 接口(类)。Nest.js 的 6.0.0 版本已经集成了 amazingtype-graphql 包,我们可以只使用 TypeScript 装饰器就可以生成 GraphQL 文件!现在,我们可以选择更适合我们需求的方法,它们都可以在 @nestjs/graphql 包中找到。
Nest.js 6.0.0 版本的另一个重大变化是 Nest.js 超越了其作为服务器端框架的主要用途,成为一个更加灵活和通用的框架。Mysliwiec 解释道:
平台独立性使开发人员可以创建可重用的逻辑组件,并在不同类型的应用程序中使用它们。利用 Nest,我们可以轻松构建 Web 应用程序、CLI、作业队列或任何我们可以想到的东西!
下一个重大 Nest.js 计划包括重写Nest.js Swagger模块,以利用 TypeScript AST,减少对装饰器的依赖,并添加对泛型、接口、循环依赖关系及自动响应模式生成的支持。Nest.js 团队也计划改进 DevOps 工作流,以便支持并可部署到无服务器环境中。
对于服务器端的应用程序,Nest.js 采用了 HTTP 服务器框架(如Express和Fastify),并提供与各种第三方模块(如TypeORM)的集成。Nest.js 提供各种各样的架构模式和装饰器,包括控制器、路由器、provider、中间件、guard 和拦截器。Nest.js 还提供了控制器(IoC)反转容器架构。
希望迁移到 6.0.0 版本的 Nest.js 用户请遵循Nest.js迁移指南。新的 Nest.js 开发人员请遵循Nest.js入门指南。
Nest.js 是基于 MIT 许可的开源软件。欢迎通过Nest.js GitHub项目参与贡献和提供反馈,并遵循Nest.js贡献指南。
阅读英文原文:Nest.js 6 Improves GraphQL Integration and Improves Platform Flexibility
评论