正在写个项目, 模块一多心智负担较大.
略微吐槽一下,简直是现实版茴字有几种写法.
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 的后端框架不像前端那样卷, 真希望能出个好用的.
1
gaobh 1 天前
建议直接让 cursor 给你写哈哈
|
2
SoyaDokio 1 天前
刚接触前段框架这一套,给我的感觉就是前端框架的写法太多太灵活,上手虽然没那么难,但搞懂真挺麻烦的。
|
3
workg 1 天前
我感觉这种架构面向的是大型项目。平常 crud express 足够了
|
4
hefish 1 天前
op ,你还上不上 next.js , 客户等着交付呢。。。赶紧的。
|
5
JiRouWaZi 1 天前
expressjs 公司内部定制一下 , 够了,在上个请求并发分流 全局 session , 其他看什么加什么得了 短小有力
|
8
andrew2558 1 天前
同感,感觉 next.js 太复杂,但又没有好的支持服务器渲染和静态生成的库。
|
9
me1onsoda 1 天前 via Android
是啊,我就无法理解,JS 这么牛逼的语言,一个后端框架怎么就不能根据装饰器自动注册,非要手动 import
|
11
jsq2627 1 天前 1
Nest.js 是用在大型后端项目上的,比如几十个人在同一个仓库上迭代,屎山要堆也堆在各自的 module / provider / controller 里面。
或者是做乙方,同样的产品针对不同的甲方要搞不同的定制化,这时候 nestjs 的 DI 就非常好用。 |
12
chiaf 1 天前 via iPhone
@andrew2558
nest 非 next 😆 |
13
meteor957 1 天前
koa 完全够了
|
14
wu67 1 天前 2
要么 express, 要么 koa, 有心思搞 nest 那套我干嘛不上 Java 呢....
|
15
IvanLi127 1 天前
我觉得挺好用的,不是小微项目,用这套挺舒服的。如果小项目并且只对数据库包一层逻辑,那就是过度抽象,得换其他的了。
要怪得怪做选型的失误或乱搞,Nest.js 没啥问题。 轻量的上 hono.js 或 fastify.js 吧,如果只有 web 端,上 trpc 做全栈更香。 |
16
DINGONE 1 天前 via iPhone
spring boot 人称小 Nest.js
|
17
easychen 1 天前
可以试试 AdonisJS
|
18
andrew2558 1 天前
@chiaf 尴尬了
|
19
zhw2590582 1 天前 1
express 含金量并未下降
|
20
Rust2015 1 天前
nest.js 难,那 spring boot 整合 vue ,那不是难的没边
|
21
foru17 23 小时 31 分钟前
我是前端出身,最近的两个大型项目后端都是用 NestJS 写了,符合工程化的选型,基础业务框架写好了,后面再写各种模块方便。就是互相依赖这个处理起来有点不爽。
|
22
linshenqi 23 小时 0 分钟前
我看成了 next.js
|
23
3085570450tt 22 小时 36 分钟前
@easychen 这个框架真的不错,我试了 egg,express,koa 等等,最终选择了这个
|
24
Cbdy 22 小时 15 分钟前
|
25
shuimugan 22 小时 15 分钟前
Nestjs 封装是有点过度了,既然是 TypeScript 这种语言加上 Node 的 runtime ,很多东西是可以做减法的。
我用的时候就做了很多减法,比如: service 全部用 static 函数,就不需要注入了,要 mock 直接 class.method = function(){},要是非 static 的就 class.prototype.method 重新赋值来覆盖; Providers 直接不用,官方案例简直是神经病连 HttpClient 都封装一层,它以为自己在用.NET 上吗,还不如开个文件在里面定义个常量然后导出,不也是全局唯一的吗; Guards 也放弃,哪来那么多策略,直接在 Middleware 里简单鉴权就行了,复杂的我宁愿单独写一个 api 网关; Modules 只拿来做业务模块区分,里面只引入控制器; 现在,我直接换 hono 了,搞个 module 文件夹自己分层就好了 |
26
SingeeKing 22 小时 9 分钟前
nest 确实有点过度封装
但是按照 IoC 思想的,似乎也只有它? |
27
Akagi201 19 小时 46 分钟前 1
不喜欢 spring boot 的人同样不会喜欢 nest.
我自己 node.js 项目不会太复杂, 复杂项目会直接用 rust 来写, 为啥要用 node.js 写复杂后端项目啊. 逻辑是一样的, 我从来没用过 DI 这种东西. 现在的趋势(以及我个人一直的偏好)是简单化, 就像做 agent 开发, 不用 langchain, 直接用最简单的抽象, 基于 api 进行调用. 另外, 后端新手上来就用 nest 绝对不好, 绝对会让他觉得后端很难的印象. 其实很多抽象, 概念都没必要. 直接根据业务写代码即可. 我之前用 hono + bun 写了一个服务, 可以参考 https://github.com/Akagi201/hono-template |
28
sagaxu 19 小时 11 分钟前
你就说新不新吧
next nest 之后,下一个 hono? |
29
ghking6 18 小时 55 分钟前
试试 midway 吧,和 Nest.js 定位一样,国产的,还是喜欢国人的审美,简单优雅,就像 vue 之与 react 一样。
|
30
subframe75361 18 小时 33 分钟前
Bun + Elysia ,写着挺爽的
|
31
DICK23 17 小时 18 分钟前
bun+hono+zod+drizzle,一套从 model 定义到前端 api 调用都能完全类型提示。活的太累了,就需要 hono 这类工具来解放自己。
|
32
amlee 17 小时 17 分钟前
写小项目就用 epxress.js 或者新的 hono.js 一把梭。
写大项目后端别用 js 了 |
33
dayeye2006199 16 小时 16 分钟前 via Android
这么写为啥用 js 呢…回去 java 不好吗
|
34
zhangk23 15 小时 53 分钟前
我有幸参加过三个月左右的 nestjs+angular 的项目,然后润了
评价为若至技术栈,又臭又长,纯骗经费用的 |
35
xiaoshan5733 14 小时 51 分钟前 1
我也用不习惯 nestjs ,最后选了小巧的 fastify
|
36
kenberkeley 10 小时 41 分钟前 via iPhone 1
所以我用了轻量版的 routing-controllers ,一样的 declarator-based 语法,但没有了那些用不上的概念。
|
37
doujiangjiyaozha 6 小时 16 分钟前
之前就听说 nestjs 的大名,折腾了下想丢到生产环境用用,配 docker,配数据库,配日志等等,用空余时间花了一个多星期,
对于前端来讲真的学习成本太高了,还有一堆规则,有这时间多摸下鱼不香吗😏 后面自己的项目果断 express,配合 serverless,直接写业务逻辑 |
38
fsdrw08 5 小时 34 分钟前 via Android
后端入门时第一个接触的就是 nestjs ,以至于日后用 Asp.net core 都觉得框架太简陋,没 nestjs 做得那么细
|
39
doommm 4 小时 59 分钟前 1
@kenberkeley declarator-based ? decorator-based ?
|
40
nl101531 3 小时 24 分钟前 via iPhone
讨厌 Java ,理解 Java ,成为 Spring
|
41
kenberkeley 3 小时 21 分钟前 via iPhone
@doujiangjiyaozha 都上 Serverless 了还用 Express 😂
|