我们在TestMace积极使用NestJS开发我们的服务。 今天,您的注意力集中在一篇文章的翻译上,该文章专门介绍了NestJS新主要版本的功能。
今天,我很高兴介绍Nest 6的正式发布,这是一个用于创建高效企业服务器应用程序的渐进式Node.js框架。
对于我们的社区来说,过去的一年已经过去了:普及率增长了将近300%,是任何现有HTTP库的4倍。 他们在世界各地的许多会议上谈到了Nest,并创作了许多文章和视频。 2018令人难以置信,而2019将会更好!
最新消息
新版本正在准备许多很酷的功能! 不幸的是,我们没有时间涵盖所有内容,但是我们一定会专注于最热门的内容!
注射范围
在以前的Nest版本中,每个提供程序都由多个请求共享。 使用单调可以减少内存消耗并提高应用程序性能。
但是,在某些情况下,可能需要对每个提供者的生命周期进行额外控制。 例如,在创建多用户系统时,在GraphQL应用程序中为每个查询实现单独的缓存时。 为了解决此类问题,IoC容器现在具有另一个详细级别,可让您创建新的注入范围-瞬时范围和请求范围。

→您可以
在此处阅读有关它们的更多信息
。平台类
Nest是一个成熟且独立于平台的框架。 因此,开发人员可以创建可在各种类型的应用程序中重用的逻辑块。 借助Nest,您可以轻松便捷地创建Web应用程序,控制台实用程序,作业队列以及所有内容! 我们已经将所有与平台相关的功能放入了单独的包中,例如
@nestjs/platform-express
,现在您可以编写更少的代码。 只需安装您的应用程序所需的一切!
大事记
以前,每个微服务通信通道的操作都是基于请求/响应范式构建的。 这种交互机制非常适合多个外部服务之间的消息传递。 看到确认,您可以确定该服务确实收到了该消息。
但是,对于某些系统,没有必要创建双向通道,因为当您只需要发布事件(不要求任何答案)时,这会导致不必要的开销。 因此,我们引入了基于事件的消息传递。 多亏了这种范例,例如,如果系统中某处出现某种情况,仅用消息通知各种服务就足够了。

事实证明,将来该解决方案将为集成更复杂的消息传递平台提供机会。 关注新闻!
GraphQL♡TypeScript
GraphQL最常见的问题之一是类型冗余。 为解决以前版本的Nest中的问题,我们添加了一个编译器,该编译器将用SDL编写的定义转换为TypeScript接口(或类)。
Nest版本6.0.0拥有一个
type-graphql
软件包,该软件包可让您仅使用TypeScript装饰器生成GraphQL文件! 现在有两种方法可供选择,您可以自己决定哪种更适合特定需求。 两种方法都在
@nestjs/graphql
。

→
在这里了解更多
命令行界面
底层Nest Angular DevKit软件包已更新,这意味着命令行界面现在显示hints 。 此外,我们增加了对nest g lib
支持,这将有助于在使用单个存储库时简化开发。
该文件
Nest的官方文档已经过重新设计,现在完全用Markdown编写。 我们认为,使用文档将更加容易,并且随着时间的推移,我们将能够使其变得更好。
合作伙伴和社区
好消息: Angular Console (用于Angular CLI的UI)现在支持Nest!

Nest成为在Angular资料库中创建结构化,可扩展的Node应用程序的首选解决方案。
此外,我们最近推出了官方的Discord频道。 订阅该频道,加入有关Nest和其他有趣话题的讨论!
从Nest 5迁移
按照说明迁移现有项目。 您应该摆脱任何关于不希望使用控制台中可能出现的程序任何部分的警告。
技术支持
Nest是MIT的开源项目。 在社区,我们的主要赞助商-Valor Software和其他公司的支持下,其当前的发展成为可能。 最近,另外两个赞助商加入了该列表-Blueanchor和NovoLogic 。 谢谢啦
我们必须走很长的路,直到周末才工作,并且几天不睡觉,所以我们的框架诞生了。 相信美好会拯救世界! ️
如果您想为我们的项目做出贡献,请点击链接 。
未来计划
我想改善生态系统中的某些方面。

我已经计划在未来几个月中实施一些想法。
- 我们想重写Swagger模块以使用TypeScript AST。 这将添加许多新的有用功能。 在此处了解更多信息。
- 适用于各种提供商的更复杂的真实世界身份验证示例。
- 部署无服务器应用程序和更多DevOps!
- 官方视频课程!
- 教育文章。
致谢
感谢赞助商,社区和所有参与的人! 我们
为您创造我们的产品,而我们才刚刚开始。