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
来两段代码找下感觉:
怎么样?是不是满满的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
目前我司团队已经用上了Nest开发。开发体验很不错!
基于 nest 的微服务框架正在开发中:https://github.com/notadd/notadd
学习中。。
不错,不过你 notadd 的微服务开发框架看着不是很理解,不像是 spring cloud 那种
@XGHeaven 更想做成类似 zheng 那样的,同时具备微服务特征
学习一下~
@zuohuadong zheng 是什么? 不过我还是喜欢 Spring Cloud 这样的
ng也玩 服务端渲染吗?
来自拉风的 Taro-cnode
学不过来了
来自拉风的 Taro-cnode
真的学不过来了
来自拉风的 Taro-cnode
@icai nest 是后端框架,只不过是 angular 风格。 跟你说的 服务端渲染完全不是一回事
Angular风格?我怎么看着像spring风格啊
@justjavac 应该是 angular 学 spring 。。。。所以 nest 像spring
@zuohuadong 名字好像啰😑😂
来自拉风的 Taro-cnode
@icai 之前 nest.js nuxt.js next.js 傻傻分不清~ 哈哈哈
@luluzero 用它之前用的是什么?
@chapgaga 之前用的koa2自己搭建的开发框架,用这类框架的最大好处就是 约定大于配置。团队开发项目可以节省很多在讨论代码如何组织上面的时间。
好吧。。。第一次看见对比框架是对比 github 的 star 数,而不是执行效率等。
@JZLeung 转载的,不过 执行效率的话 nest.js 取决于你底层用的是 express 还是 fastify 。 nest.js 是 node.js 里,目前有且唯一一个类spring 的AOP 框架。 对比分层,对比设计 就有点太欺负人了。