Node 后端使用 express 还是 koa?

2019 年 4 月 24 日
 MrCard

想把个人网站的后端换成 Node,但是对两个框架犹豫不决,哪个综合来看好点呢?或者企业用的比较多的是哪个?

20883 次点击
所在节点    Node.js
70 条回复
ilaipi
2019 年 4 月 25 日
看了大家的回复,有点想试试 nest 了,但是看了一眼,优先 ts,感觉有点难以接受。我是不打算写 ts,不然当初也没必要从 java 转过来 node。有用 nest 不用 ts 的吗?
nineyang
2019 年 4 月 25 日
没人推荐 sails 么
nigelvon
2019 年 4 月 25 日
长期维护的项目还是推荐基于 ts 的比如 nest,短期一次性项目 koa 吧。express 的中间件不是洋葱圈有点难受。
thomaspaine
2019 年 4 月 25 日
@nineyang 看了下,感觉不灵活啊,还是 nestjs 好点
Justin13
2019 年 4 月 25 日
koa2 啊
SuYia
2019 年 4 月 25 日
这种问题最好的解法就是:都用一遍,哪个顺手用哪个。

当然,我个人推荐 Egg.js ,什么依赖注入啊,不太感冒,没法儿,谁让我是 Java 黑呢
cuzfinal
2019 年 4 月 25 日
用 nest
CodingNaux
2019 年 4 月 25 日
不选 node
version
2019 年 4 月 25 日
@guiling 例如订单和数据库相关的事务方面的.nodejs 不适合做业务核心高并发的....做做分发前端渲染那些还可以.
E2gCaBAT5I87sw1M
2019 年 4 月 25 日
fastify
version
2019 年 4 月 25 日
@ilaipi 我也是 java 转 nodejs 也有 3 年了..nodejs 优势是比 java 强太多了...这样说可能很多人不爽我..不过我外包或者普通 crud 基本也是 nodejs 写的了..包括小游戏..普通接口压力.nodejs 还是很个给力的..一个没经验的 java 写的并发或者普通企业写的接口可能差过我 nodejs....现在 nodejs 对于大数据处理还是瓶颈很大..我 nodejs 原生+es6 我觉得非常完美的方案了..高并发核心模块用 rpc 转 go 来写..
go 也是下一个趋势了.省内存.快捷..java 就算了.都是吹 ppt 的.我见多了.实际业务代码能力差的很..我对国人写 java 很伤心了.
ilaipi
2019 年 4 月 25 日
@version #51 握爪,我也是差不多 15 年转 node 的,现在公司项目全线 node。模块化拆分,独立发布我觉得都很方便了。

go 目前还用不上,以后再说。

我觉得确实是存在一批能力很差的生存在底层的程序员,业务代码能力非常差。

不过 java 也有点优势。比如我们最近项目 mq 选型选了 rocketmq,买了阿里的服务,结果只有 java 的客户端比较完善,node 的客户端一塌糊涂,并且没有进展,绝望.jpg
puilu
2019 年 4 月 25 日
express 稳一点吧,那些口口声声要代替 express 的至今感觉都有气无力了。
kingterrors
2019 年 4 月 25 日
看样子没人用 hapi。。
我公司项目都是 eggjs。基于 koa 封装的,比较容易上手。
个人的话,我觉得随便哪个都行吧,看哪个 logo 好看就用哪个哈哈哈。
marsgt
2019 年 4 月 25 日
印象里《 Node 实战》里有基础框架的横向对比,讲选型策略的时候给了些建议都挺实用
version
2019 年 4 月 25 日
@ilaipi 消息队列的还好..有 http 协议就自己封装一个 sdk 单例使用..我觉得就够了..如果不是特别多业务的.可以自己 redis 写.

麻烦的是走 socket 协议的一些 rpc 断连就会出事.又或者重复发送.
version
2019 年 4 月 25 日
@kingterrors egg 是 kpi 的产物..看看他们的代码就好..
自己用就还是自己搭建一个就够了.其实写个接口服务.不需要那么多东西的...

hapi 就非常垃圾了.整一个 mvc 的做法.弄一套自己的标准..背离了用 nodejs 特性的初衷..
写无服务的模块化才是未来的发展.哪个不爽重写就好.不用担心其它代码依赖
ilaipi
2019 年 4 月 25 日
@version #57 选 rocketmq 的原因主要是因为有延迟消息的功能。我们的业务场景里有很多需要一定时间后触发的。不想搞任务系统,我就想用 mq 来实现。
ilaipi
2019 年 4 月 25 日
@kingterrors #54 koa 和 express 貌似 log 都是需要自己加载中间件的
Gea
2019 年 4 月 25 日
nest

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/558301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX