吐槽一下 Nest.js 太复杂了

10 天前
 importmeta

正在写个项目, 模块一多心智负担较大.

略微吐槽一下,简直是现实版茴字有几种写法.

1.把中间件拆成 Middleware,Guards,Interceptors,Exception,Pipes, 并且他们都能获取请求上下文(Request, Response), 并且有不同的顺序, 但同类别内也有顺序, 并且生命周期是如此的繁琐.

https://docs.nestjs.com/faq/request-lifecycle

2.封装一个三方 API 花样太多了.

单独的 Service, Providers, Dynamic Module, ConfigurableModuleClass

这里面还有分 Sync 和 Async 导入, Global 模块.

3.模块系统是 Angular 那一套, 注册繁琐, 还会出现循环依赖.

心智负担比 Spring Boot 高太多了.

JS 的后端框架不像前端那样卷, 真希望能出个好用的.

6524 次点击
所在节点    Node.js
58 条回复
kenberkeley
9 天前
@doujiangjiyaozha 都上 Serverless 了还用 Express 😂
yolio2003
9 天前
非常同意 next.js 太复杂的看法 水平有点菜 但是这是前端最火框架了。。。
epiloguess
9 天前
不想恶意攻击,但是评论区很多把 nestjs 看成 nextjs 的真的难绷,名字看错了就算了,内容也不看?
mark2025
8 天前
@me1onsoda 所有导入都显示声明好处是方便管理。如果想简单点(又不至于 express 那种简陋)、支持自动扫描可以试试国产的 midway.js
https://midwayjs.org/ or https://beta.midwayjs.org/
thonatos
8 天前
可以看看 Artus ,基于 IoC + Container 实现

https://www.artusjs.org/
weixiangzhe
8 天前
fastify 感觉够使了
funnyecho
8 天前
确实复杂度高,虽然每一层都是有意义的封装~

感觉,上手的时候只管 svc 层,后面发现需要 inject 啥的,逐步接触,慢慢堆会好一点。

项目开始一下子要完成层次划分、或者说让团队每个人都明白这种分层,就难搞一点了。
TimPeake
8 天前
小项目 国产框架就够了.....之前用 egg.js 感觉挺好使的。
jiangzm
8 天前
midwayjs
victimsss
8 天前
nestjs 还能接受 ,但是混用应用有点恶心
DingJZ
8 天前
今年终于跳出 node ,用 ror 写了一个项目,太舒服了
gengjiawen
8 天前
试试 blitzjs ,我用了一年多,个人很满意,比较接近 ruby on rails
hwlv
7 天前
@doujiangjiyaozha express 怎么配合 serverless 用呢,可以分享下吗
shellus
7 天前
Nest.js 确实是个很复杂的框架,简直是故意让人头疼。要我说,这么多中间件、服务、模块系统,真是折腾。为了封装个 API 竟然还要搞那么多花样,搞得像在玩魔方。还要弄不同的导入方式,真是让人抓狂。用这个框架不仅心智负担大,还得时刻提防循环依赖,简直是恶梦。

那些说它适合大型项目的,搞笑吧,Express 或者 Koa 都能轻松搞定,还需要用这种繁琐的框架吗?想要搞出个好用的后端框架,别学 Angular 那一套,把事情复杂化,只会让人更反感。

有这心思不如直接用 Java ,Spring Boot 起码还不至于这么折磨人。后端框架本来就不应该那么卷,搞得好像我们开发者是受虐狂一样。找个简单高效的用就行了,Nest.js 这种复杂的玩意儿,还是留给那些喜欢折腾的人吧。
dreamerblue
7 天前
它受 ng 思想影( du )响( hai )很深,基于 Ng Style Module 的底层设计限制了很多东西,也让不少能力只能以 Module 补丁的形式打上去,变得异常复杂。我在公司的业务和个人项目还在用几年前写的框架 bwcxjs ,算是带了 DI 的声明式 Koa ,轻量小巧,多数时候够用。
dudubaba
7 天前
是繁琐了些,但是个人觉得是最规范的针对前端 er 的后端框架,没有之一。
Belmode
5 天前
nestjs 提供的开箱即用的东西太丰富了,到目前为止我还没有发现有哪个 JS 相关平台的 web 框架,能有 nestjs 做的这么细的。
绝大部分开发场景需要的依赖都有适配到,也兼容自身的 ts 类型系统做了 adapter ,我觉得还是挺友好的。
skkakaka2
2 天前
虽然但是,有些人连 nextjs nestjs 都搞不清楚分别是做什么的就开始吐槽了,其水平可见一斑

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

https://tanronggui.xyz/t/1108703

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

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

© 2021 V2EX