吐槽一下 Nest.js 太复杂了

227 天前
 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 的后端框架不像前端那样卷, 真希望能出个好用的.

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

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

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

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

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

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

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

https://ex.noerr.eu.org/t/1108703

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

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

© 2021 V2EX