大家好,nodejs发展到现在,大家都用什么框架啊
发布于 7 年前 作者 a69694510 15316 次浏览 来自 问答

用传统的express,还是更加潮流的koa,或者是文档毕竟全的框架。一些毕竟适中的框架,比如sails,你们都在用什么,或者是以后准备学什么。大家来交流交流

来自酷炫的 CNodeMD

76 回复

用egg.js没错。

vue.js算吗?

express和koa都用

egg 那么厉害嘛! 那么多人用 - -。为了避免找中间件麻烦我一直都是express

express
egg是下一个目标

egg.js 普及率好高呀, 开发过程中有什么坑么

koahub.js +10

来自 KoaHub.js

@hi363138911 express哪里好

来自酷炫的 CNodeMD

@AnzerWall 这有啥好的

来自酷炫的 CNodeMD

koa express 楼主说vue算那还包括react

@a69694510 资料好找啊,不用新语法,更能把握项目全局。 不过个人项目还是推荐 koa2,egg 我是没有用过。

用的koa2 async await 框架 真心好用,不过最近也在了解egg,希望过段时间能更佳的深入了解一下

node7.x支持async await之后,express也不需要引入其它的依赖就可以支持同步了,我觉得比koa要好用的多了

@liygheart 既然express不需要额外引入,你觉得koa需要引入吗?个人开发体验,koa2 比 express舒服些,以前用的是express,现在也有部分项目在用。和 koa2 一开始就拥抱 async/await 分不开

@DevinXian 说到底还是习惯的问题,我一直用的是express,之前不支持async/await,要引入其它依赖来支持,所以多少有点不方便,koa/koa2都没怎么用过,看了下介绍,除了支持同步,其它就是把功能拆分出来了,所以还是继续用express

@lei2231 vue 跟node.js 有半毛钱关系?

express

来自酷炫的 CNodeMD

koa2。 刚开始的时候用很多别人写好的东西做辅助。后来一个个挑出来自己写了。 加上node 现在支持了async很多地方写起来都很方便。

自己写了个基于express和typescript的框架, https://github.com/loon-project/loon 用ts配合vs code很省心

express过时了,下坡路,跳崖式下坡路

koa代表未来,别学koa1了,直接2起步

Egg等到2.0支持ES7再说吧

@zbsccc

看来重要的事要说三次:

Egg 1.x 版本完全支持 async,完全支持 koa2 的中间件 Egg 1.x 版本完全支持 async,完全支持 koa2 的中间件 Egg 1.x 版本完全支持 async,完全支持 koa2 的中间件

只要你使用的 node 7.6+,就可以放心的使用,至于 egg 底层用的是不是 koa2,完全不用 care,我们已经早就兼容了,并且所有的插件的 ci 都是跑 6,7,8 的。

https://eggjs.org/zh-cn/intro/egg-and-koa.html

@atian25 支持是支持,不是原生吧,性能有差异

@zbsccc

https://github.com/eggjs/egg-core/blob/master/lib/utils/index.js#L39

https://github.com/eggjs/benchmark

以大部分国内的业务规模来看,还达不到需要拼框架的 generator 和 async 这点性能的程度。

@atian25 对我来说最大问题是框架里是generator,我写的是async,这个不能忍的,非常纠结,必须要统一!

@zbsccc 那就是个人喜好问题了,跟性能没啥关系。 然而,框架内部是什么,你在应用开发的时候又看不到,只要在应用代码里面全部是 async 不就行了。 而且就算你现在直接用 Koa2,它的子依赖你就确信没有类似的兼容,请问这个你要不要忍呢? 话说, node 8 现在还不是 LTS,async 也只是 generator 的语法糖而已,我们的洗影MM(Node CTC 成员) 说它还是有很多问题的,慎用。

express 和 koa2都有在用,新项目基本都是koa2,论坛里egg什么时候这么火了啊🐳

@DevinXian koa 好像把请求流程处理改掉了,不想 express 那样流水线式,用起来有点麻烦

@ilovedesert001 Koa 是洋葱模型,一来一回。正好相反,很多 express 的插件,改用 Koa 写则非常非常的简单。

所有的请求经过一个中间件的时候都会执行两次,对比 Express 形式的中间件,Koa 的模型可以非常方便的实现后置处理逻辑,对比 Koa 和 Express 的 Compress 中间件就可以明显的感受到 Koa 中间件模型的优势。

@zbsccc 同感,所以用thinkjs好些

https://github.com/open-node/open-rest 一人一年开发5个产品的api,我全靠他了。

最早用 Express,后来写纯 API 时用 Restify,现在用 Egg.js。看了 Egg.js 的文档后发现它的设计思路和模式与我自己实践中形成的一套基本相同,而实现得更完善和深入,所以理所当然地就迁移过来了。 From Noder

刚开始搞nodejs,先看的koa2,看完就决定选择egg.js了。

来看评论来了 From Noder

做node快两年了,刚开始用的express,后来切到thinkjs,再后来跳槽了就又切到koa2

@lei2231 Vue不是Nodejs 框架 From Noder

@1261407209LHH 恩恩 是前端的对吧?

人生苦短,我用http or https

两个项目用到了egg,感觉还不错,用起来挺省心的,但有一个问题,egg如何做代码提示? 由于egg自己实现的模块加载,没法用 ts的 声明文件(*.d.ts)做代码提示,不知各位有什么法子

用团队自行封装的基于koa2的thinkkoa

@atian25 express不也是洋葱模型么

@atian25 性能测试拿出来,ts vs node,不然就是刷流氓

@i5ting 跑空框架没啥意义的,以大多数人的业务场景来说,还轮不到拼这个性能的时候。

@atian25 ts + async转的过程中会有很大损耗啊

@i5ting 没看懂上下文,ts 我只是说我们有 example,并不是说我们推荐业务用 ts。

另外, ts 跟 egg 也没啥关系,不管你用 koa,express,egg,只要你用 ts,都一样需要编译

可以试试Node版的Laravel - AdonisJs

看情况而定。为啥没有提及loopback。。。。。。多么牛逼的东西。。。 restify 也挺好。。。。express 也够了。。就不像折腾什么koa,egg,反正nodejs V8.0 以后版本也支持async了。。。 其实还是callback 效率高,直观

express足够

@atian25 我express用的不是特别多,主要用koa。但是express的中间件模式不是和koa一样的吗。这不是洋葱模型吗

@qingmingsang 看了那两个中间件的源码对比了么?

@atian25 不好意思没有。只是用koa的时候经常改express的中间件,感觉两者是一样的

@qingmingsang 可以看下 https://eggjs.org/zh-cn/intro/egg-and-koa.html#middleware 下面的两个中间件对比下。 express 是线性的,koa 才是洋葱的。

@atian25 除了一句话说不同,并没有看到具体的对比。 我以前有写过一个执行的对比,所以我才认为他们是一样的 http://www.cnblogs.com/qingmingsang/articles/6019219.html

@qingmingsang

文档里面不是列出了 2 个链接给看源码么?

如果看不懂,那可以对比个简单的:

很久没碰 express,你那个示例有问题的,你改为异步的就知道了,在其中一个 middleware 里面的改为 setTimeout 里面 next()

回到顶部