现在 node 做后端一般用什么框架

2020-01-13 10:03:49 +08:00
 SaintSeiya
想做个小东西,也就写一些接口,不知道现在还流不流行 express 和 koa 了
18854 次点击
所在节点    Node.js
64 条回复
wunonglin
2020-01-13 14:12:40 +08:00
nestjs
MrBrand
2020-01-13 14:28:51 +08:00
我的博客服务端用的 koa2 准备用 nestjs 改造下,主要是想学习使用 ts 哈哈
lizheming
2020-01-13 14:46:17 +08:00
@mytharcher 可以考虑下 ThinkJS,基于 Koa2 的,文件即路由 ~
kidult
2020-01-13 14:52:24 +08:00
推荐 nestjs,感觉还是在写 java ..
nianyu
2020-01-13 14:56:30 +08:00
只推荐 nest 或者轻量级的 express .
egg 什么的一边去吧
hillwall
2020-01-13 14:58:18 +08:00
nest,ts 一把梭
iYoloyolo
2020-01-13 15:13:37 +08:00
daruk 试一试
jiangzm
2020-01-13 15:16:07 +08:00
轻量一点的 koa 和 express,别用 egg
wangyzj
2020-01-13 15:21:26 +08:00
koa2
不喜欢 egg 那种大集合
zy445566
2020-01-13 15:41:44 +08:00
果断 koa2,自己想怎么改就怎么改
tao1991123
2020-01-13 16:49:40 +08:00
eggjs
wee911
2020-01-13 17:48:00 +08:00
nest.js 必须这个
WittBulter
2020-01-13 19:09:58 +08:00
1. Express 生态圈比较成熟,可用的中间件和设施也是最多的,但是比较臃肿而且最佳实践见仁见智,算是个比较中庸的选择。大家也比较熟就不多说了。

2. Koa2 是我比较喜欢的设计理念,相对小巧,算是只有主菜,套餐自由组合。值得一提的是很多时候不需要那么多中间件比如在微服务或是 Serverless 上写东西更值得推荐,自由度很高。可惜社区太薄弱,参与贡献的人很少,很多设施更新很慢。如果你有一些很酷的想法或者想为 NodeJS HTTP 框架添加一些东西,为这款源码简短的框架写周边服务是再好不过的了。

3. Fastify 是在性能上更优秀的库。我只在写一些极小的逻辑时才会用,基本只会在 Serverless 上使用。不过它的设计很巧妙,源码可以多读,给了我很大启发。它性能真的很高(作为 http 服务来说),如果你很看重性能可以尝试。

4. Sails 是我早期在项目中用过最多的框架。Sails 是仿造 Rails 的 NodeJS 实现,总体来说算是实现了 Rails 的大部分设计,风格上保持主厨精选和约定优于配置,在这个框架下工作会非常的省心,效率非常高且优雅。缺陷也很明显:`waterline` 速度被人诟病已久,而且优于要做很多活所以性能较差,但大约和 Express 处于一个量级。很多地方源码的实现很脏,和 TS 结合不算友好,近年来的更新有些慢。如果你喜欢 magic 喜欢 ruby 风格可以试试。

5. NestJS 本质上是一个更加全面的 routing-controller,设计上也大幅度借鉴了 Angular 和 routing-controller,不过只是一个骨架,可以结合 Express 或 Fastify,算是目前和 TS 结合的最好的框架。缺陷还是在 TS 的 ORM 数据验证这一块,由于没有自己实现所以推荐了 routing-controller 作者写的 class-validate,这个库的更新很慢而且问题比较多而且使用起来堆栈很高不是很理想,另外此框架是 IoC 类型所以代码量稍高,不过如果你喜欢大而全喜欢 TS 又喜欢写测试,这个框架是最推荐使用的。

6. zeit/micro 是我见过 NodeJS 中最微型 Http 库,麻雀虽小五脏俱全,也受到很多人的热捧。非常推荐在微服务中使用,以前是 zeit 在 Serverless 上的首选,现在优于 now 的发展当然不需要了,也一直是我的最爱,代码量极低、小巧、高性能、设计优雅。社区有不少与此相关的周边库,作者也更新的快,非常值得信赖。不足的地方是文档少 (功能少所以文档少),如果没有一定的 NodeJS 基础会有些云里雾里。

7. Hapi、Restify 等等这几个是我比较讨厌的,就不细说了,免得它们又有新用户。

综合评价:
性能偏执压测之子请选择 Fastify,
宗教信徒快乐编程请选择 Sails,
大道至简高人雅士请选择 zeit/micro,
社区中坚力求变法请选择 Koa2,
遵循法度统筹兼顾请选择 NestJS,
以上都不是没有特别喜好请选择 Express。
fsdrw08
2020-01-13 20:25:35 +08:00
nestjs,只用过这个,搭配 angular 使用很省心
SaintSeiya
2020-01-13 20:50:24 +08:00
@WittBulter 可以的老哥,多谢建议
Rorysky
2020-01-13 23:55:34 +08:00
nest nust next
jprovim
2020-01-14 07:26:16 +08:00
hantsy
2020-01-14 08:42:47 +08:00
中庸的角度,Express 是首选,生态圈成熟,各种需要的东西都能找到,自己装配。
快捷的,面向企业程序,Microservice:Nestjs,loopback,功能全面,拿来就用。
codz
2020-01-14 10:04:50 +08:00
mark,学习. nestjs 待学.
chrunlee
2020-01-16 09:11:37 +08:00
没人用 thinkjs 么?

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

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

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

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

© 2021 V2EX