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

6507 次点击
所在节点    Node.js
58 条回复
gaobh
10 天前
建议直接让 cursor 给你写哈哈
SoyaDokio
10 天前
刚接触前段框架这一套,给我的感觉就是前端框架的写法太多太灵活,上手虽然没那么难,但搞懂真挺麻烦的。
workg
10 天前
我感觉这种架构面向的是大型项目。平常 crud express 足够了
hefish
10 天前
op ,你还上不上 next.js , 客户等着交付呢。。。赶紧的。
JiRouWaZi
10 天前
expressjs 公司内部定制一下 , 够了,在上个请求并发分流 全局 session , 其他看什么加什么得了 短小有力
JiRouWaZi
10 天前
@JiRouWaZi 而前端, 我记得 react 远古时期手动绑定 this 、还有其他奇奇怪怪的很多写法;但 我觉得状态管理器和有些东西还是挺有价值的
hronro
10 天前
@SoyaDokio #2
这明明是后端框架, 怎么到你这就成了前端框架了? 和语言绑定了, 是 JS 就全都得叫前端框架?
andrew2558
10 天前
同感,感觉 next.js 太复杂,但又没有好的支持服务器渲染和静态生成的库。
me1onsoda
10 天前
是啊,我就无法理解,JS 这么牛逼的语言,一个后端框架怎么就不能根据装饰器自动注册,非要手动 import
jsq2627
10 天前
@me1onsoda 之前读 Rails 项目代码经常迷路,所以我不觉得自动注册是好的实践。显式 import 可读性提高很多
jsq2627
10 天前
Nest.js 是用在大型后端项目上的,比如几十个人在同一个仓库上迭代,屎山要堆也堆在各自的 module / provider / controller 里面。
或者是做乙方,同样的产品针对不同的甲方要搞不同的定制化,这时候 nestjs 的 DI 就非常好用。
chiaf
10 天前
@andrew2558
nest 非 next 😆
meteor957
10 天前
koa 完全够了
wu67
10 天前
要么 express, 要么 koa, 有心思搞 nest 那套我干嘛不上 Java 呢....
IvanLi127
10 天前
我觉得挺好用的,不是小微项目,用这套挺舒服的。如果小项目并且只对数据库包一层逻辑,那就是过度抽象,得换其他的了。

要怪得怪做选型的失误或乱搞,Nest.js 没啥问题。

轻量的上 hono.js 或 fastify.js 吧,如果只有 web 端,上 trpc 做全栈更香。
DINGONE
10 天前
spring boot 人称小 Nest.js
easychen
10 天前
可以试试 AdonisJS
andrew2558
10 天前
@chiaf 尴尬了
zhw2590582
10 天前
express 含金量并未下降
Rust2015
9 天前
nest.js 难,那 spring boot 整合 vue ,那不是难的没边

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

https://tanronggui.xyz/t/1108703

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

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

© 2021 V2EX