Nest.js 6 改进了 GraphQL 的集成,并提高了平台的灵活性

最近,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 贡献指南

阅读英文原文: https://www.infoq.com/news/2019/04/nestjs-6-release-graphql