Nest简介
Nest起源于2017年5月,是一款深受Angular影响的服务端框架。
Nest当前的最新版本是5.x,在github上有7K+ star。
Nest采纳了Angular最核心的设计思想和概念,同时也融入了Spring的一些设计思路:
语言层面采用了TypeScript
- Providers,与Angular中的Provider类似
- Modules ,与Angular中的Module类似
- Pipes,与Angular中的Pipe类似
- Guards ,与Angular中的Guard类似
- Decorators,与Angular中的Decorator类似
- Controllers,类似Spring里面的Controller
来两段代码找下感觉:
image.png
怎么样?是不是满满的Angular风?
竞品比较
社区上有一些人在鼓吹Nest即将成为NodeJS届的Spring,小编不同意这种观点,虽然Nest的设计思路很优秀,但是想成为Spring那样经久不衰的稳固架构,尚需时日。
目前,市面上Nest的同类竞品主要有Koa2和阿里的egg。来,我们用数据说话: http://www.timqian.com/star-history/#nestjs/nest&koajs/koa&eggjs/egg
考虑到star数量可能存在的水份(据说万能的淘宝上有刷star服务?真是活久见呢),我们还需要一个数据对照组,来看npm上的下载量:
http://www.npmtrends.com/egg-vs-koa-vs- @nestjs/core
从绝对数值上看,Koa依旧是王者,而Nest的下载量已经超越egg(是不是因为cnpm的原因?还需要再做一个精确的对照)。
小编自己的看法
相对于JavaScript,用TypeScript来开发服务端应用更加合适。无论是代码的健壮性,还是大规模团队协同,TypeScript的优势都远远超越JavaScript(包括ES6、7、8、9),因此Nest选用TypeScript是非常聪明的策略。 如果你是Angular开发者,想学习NodeJS开发服务端应用,试试Nest吧。完整的Angular思路,从页面一直撸到Server端,想起来都兴奋呢。 如果你是Spring使用者,想进入前端或者NodeJS领域,试试Angular+Nest,真心爽歪歪。 以上是 @业余小编 自作主张发表的看法,与 @大漠穷秋 无关,如果想喷请喷我,顶我上去。
结论
Nest值得长线看好,如果你的团队刚好是Angular或者Spring的重度使用者,从节约学习时间的角度考虑,Nest是黄金选择。
以下是参考资料链接
github地址:https://github.com/nestjs/nest 官方主页地址:https://www.nestjs.com/ 文档地址:https://docs.nestjs.com/ 本文由 @业余小编 整理编辑,写稿不易,转载请保留署名。 转载自: http://www.ngfans.net/topic/253/post/2
@JZLeung 转载的,不过 执行效率的话 nest.js 取决于你底层用的是 express 还是 fastify 。 nest.js 是 node.js 里,目前有且唯一一个类spring 的AOP 框架。 对比分层,对比设计 就有点太欺负人了。