一直以来,node.js 都被嘲笑为前端的附属品,做不了后端。 即使是 express koa 这样的框架出来,也没能改变大家对于node.js的看法,直到 nest.js 问世,才真正解决了问题——架构。 甚至一些 javaer 和 laraveler 也纷纷涌入它的怀抱。
nest.js 第一个版本发布于去年11月,从此star 数就在猛涨:
目前两个框架的star 数都在11k
npm 下载量也在 egg 的十倍左右: (注: 未统计 cnpm 下载量)
那么nest.js 有什么神奇的地方呢?
Nest.js 受到了 Angular 的启发,甚至很多装饰器命名也完全一样,基本上可以无缝切换前后端。
(待更新)
英文官方文档: https://docs.nestjs.ccom/ 中文非官方文档:https://docs.nestjs.cn/
Github: https://github.com/nestjs/nest/
除此之外,阿里最近也出了类似的 midway 框架。不过还没发布正式版。 围观地址: https://github.com/midwayjs/midway
额。。捧一个东西的时候非要踩另一个么
@Ander456 我觉得这正好说明了 egg 的成功。如果以后每出一个框架都会有人说“这个框架比 egg 好”,“这框架还不如 egg”,“这框架超越了 egg”,…… 那么正从一个侧面说明了 egg 的地位。
@Ander456 阿里自己也在搞 midway 。
@justjavac egg 算是国内 node.js 框架的先驱者之一, 比同期的thinkjs 之类的要好。 国内招聘的话,确实除了 express koa 就只剩 egg 了。 跟 egg 比,也算是抛砖引玉吧,开发者会用脚投票。
但我同样期待 midway , 只不过阿里好像不怎么推广。
要什么框架。 老夫写前端直接原生JS原生CSS,Web Components一把梭。 老夫写后端直接require(‘http’)封装个ctx就开干。
我不觉得的在nodejs世界里非要搞一个类似于java这样的nest框架,反而越搞越复杂了。
然而用node做业务并不合适 也不需要java 那一套 大多数都是拿来做 前端渲染 调用后端其他语言服务
@arden 这个最早来自于 ruby on rails 。 被 spring 发扬光大, php里也有 类似的,比如 laravel 和 swoft 。 很多人不能理解,但确确实实减少了维护成本
@siyue543241338 所以算是个新的尝试,之前一直喊着 node.js 替代后端,却 一直没有像样的框架出来,但目前证明,还是可以实现类似的东西的,只是缺时间和生态。
nodejs 就是为一些初创企业快速实现想法,怎么快怎么来,要么就是做一些小工具,如果真要做大型项目,老老实实用go或者java来的实在。
@arden 其实主要就是成本的权衡: 初期开发成本,硬件成本,维护成本。 nest.js 给了一个开发成本低于 spring 和 go , 硬件成本(IO密集)介于 java 和 go之间,维护成本又低于go 和 java (不过得看具体项目)的新选择。
当然,还有更重要的一点,前端angular 后端 nest.js 基本上无缝切换。
nest 并不阻碍你使用 express koa 这些传统框架。 就跟 java 也有传统框架,也有 spring 一样。
就跟 PHP 社区觉得laravel 重一样, 用户依然会用脚投票。
没用过,有空可以尝试下
从简单到复杂,最终回归到简单
阿弥陀佛,恭喜你独孤九剑已修炼到第九层 :无剑胜有剑
「凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。」
「紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。」
「重剑无锋,大巧不工。四十岁前恃之横行天下。」
「四十岁後,不滞於物,草木竹石均可为剑。自此精修,渐进於无剑胜有剑之境。」
大量用了装饰器的框架,怀念起用Spring3.0的日子
@lipsChan 解耦了解下?
@zuohuadong 解耦的是DI、拦截器这些吧,装饰器是用来优化配置模式的
@fuxingZhang 论坛里的大佬才是。 不好意思我刚刚吹牛逼了,对于这点我抱歉。
是不是又要学一波angular了 … 可是react还没搞清楚 …
@Helovebai
我们其实很折腾, angularJS 1.x 到 angular2 再到 vue2 然后 react 16 最后回到 Angular 5+
转了一圈发现,还是 angular 技术栈比较稳(1.x 到 2.x 除外)
@zy445566 没有啊,说的挺好的
@zy445566 Web Components 支持不是特别好啊 起初的html import, 虽然chrome都支持,但已经提示废弃了,换成ES module,感觉还处于变化之中,不稳定。 小众的IE,Edge不支持,其他浏览器没测试。
有很多地方像react,虽然让人很惊喜,但还是不敢用于实际生产