Node 后端使用 express 还是 koa?

2019-04-24 16:29:28 +08:00
 MrCard

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

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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX