V2EX POST
647 subscribers
138 photos
31 videos
99 files
104K links
v2ex新贴定时推送,可按需置顶本频道然后关闭通知
Download Telegram
有关 nestjs 的循环引用问题;

我有几个 module ,service 引用结构如下

A -> B -> A. 也就是说 A ,B 有相互引用关系;这样会导致循环引用问题; nestjs 编译会报错;

通过查询,了解到的解决方法有两种;

1. 抽离一个 module C ,然后引入 Service A ,B ; 在 A ,B controller 中直接引入 Service C ;那样 service A ,B 就会是单纯业务逻辑,不会引发 circular dependencies
2. 是使用 forwardref

这两种方法都可以;但是有点疑问,希望能得到解惑;谢谢了;

方法 1: 会多出一个 module ; 那如果有关联关系的业务实体,是不是都会引发一个新的 module 来避免 circular dependencies

那我是不是可以把所有的 service 集中在一起 Module Common ,然后供 controller 消费,就能避免在 service 中消费其他 service 引发 circular dependencies ;这样的话 Module Common 就变成了垃圾桶了,啥都放在里面;

方法 2: 有可能发生未知错误;不知道引用关系到底是什么样子的;跟 nestjs 的依赖注入 设计有点相反;不太想用

#service #module #circular #dependencies #引用 #nestjs #Service #controller #Module #Common
关于未来,哪个框架会成为最流行的?

本人用过 express ,nestjs ,目前工作是做 nestjs 开发的。
很想知道行业趋势将如何去抉择,什么框架会成为最流行的呢?
就本人用过的框架而言
nestjs+ts 的开发非常舒服,但是确实对于一个小项目来说过于繁琐了。
express 倒是方便,但也确实大项目写到后期维护很是问题。

#nestjs #express #用过 #框架 #本人 #ts #确实 #开发 #项目 #繁琐
为什么 npm 更新比安装还要慢

nestJS 不是发布了 9.0 吗,打算更新一下,里面只有 PassPort 、CASL 、TypeORM 几个简单的依赖包,然后 npm update 花了一个小时结果还报错,一气之下删掉所有 node_moudules 重新安装,1 分半就解决了...

https://i.imgur.com/5a4YVpC.png

https://i.imgur.com/dTPwxB9.png

#https #imgur #com #png #重新安装 #报错 #nestJS #9.0 #PassPort #CASL
Nestjs 最佳实践》教程又更新啦,《React18 最佳实践》即将发布,争取做一套比较好的 TS 全栈开发实战教程

目前为止已更新到 8 集,CRUD ,验证,序列化,抽象等等已完成,接下来用户权限部分,同时《 React18 最佳实践》也即将发布,各位新老朋友多多支持哈🙏

- **视频地址: https://www.bilibili.com/video/BV1pG4y167cV**
- **文档地址: https://pincman.com/docs/courses/nestjs-practise**
- **交流方式: 加我微信(yjosscom)拉群交流**
- **支持网站: [平克小站]( https://pincman.com)**

## 🍉 教程目录
本教程由浅入深的讲解 TS Node 与 Nestjs 应用的开发.教程中通过循序渐进的方式实现一个无懈可击的商业应用及底层框架构建,帮助大家快速,高效的掌握 Node.js,TS 以及 Nestjs
教程篇幅定在二十五集,通过一个完备的后端应用由浅入深地讲解 Nestjs 应用的开发.教程中通过循序渐进的方式全方位的讲解 Nestjs 框架的应用开发,使大家能快速,高效的掌握 Nestjs 并且加深对 TS 和 node.js 的熟练度.
教程目录如下:

> 教程中的代码和文档长期跟随 Nestjs 官方版本以及 Node.js 版本的升级而更新,无需担心过时问题

1. 👉 [编码环境搭建]( https://pincman.com/docs/courses/nestjs-practise/chapter1)
2. 👉 [基本数据操作]( https://pincman.com/docs/courses/nestjs-practise/chapter2)
3. 👉 [模型关联与树形嵌套]( https://pincman.com/docs/courses/nestjs-practise/chapter3)
4. 👉 [排序,分页与过滤的实现]( https://pincman.com/docs/courses/nestjs-practise/chapter4)
5. 👉 [自动验证,序列化与异常处理]( https://pincman.com/docs/courses/nestjs-practise/chapter5)
6. 👉 [简化代码与自定义约束]( https://pincman.com/docs/courses/nestjs-practise/chapter6)
7. 👉 [批量操作与软删除]( https://pincman.com/docs/courses/nestjs-practise/chapter7)
8. 👉 [CRUD 抽象化框架构建]( https://pincman.com/docs/courses/nestjs-practise/chapter8)
9. 用户模块-JWT 与守卫实现
10. 用户模块-Redis+BullMQ 实现短信及邮件验证
11. 用户模块-RBAC 权限系统
12. 用户模块-动态关联实现
13. 配置模块与 Open API(swagger)配置实现
14. websockets 与 SSE 实现上线与消息广播
15. 整合 ElasticSearch 实现全文搜索
16. Jest 测试与 E2E 测试编写
17. 缓存与日志中间件编写
18. 使用 Yargs 构建 CLI 工具
19. 实现数据结构迁移命令与数据填充命令
20. HTTP 客户端与爬虫实现
21. Crontab 定时任务开编写
22. Graphql api 编写
23. Nginx 反向代理与 PM2 部署
24. Gitea+Drone 自动化 CI/CD
25. 使用 Lerna/pnpm 实现 Monorepo 组织结构

#https #com #pincman #docs #courses #nestjs #practise #Nestjs #教程 #实现
请教一个 nestjs 创建 updateDto 的问题

大家好,请教一个关于 'class-validator' 和 PartialType 的问题:

在用 '@nestjs/swagger' 的 PartialType 创建 updateDto 时,我发现了一个问题,PartialType 会为 createDto 里的每个属性添加 @IsOptional() 修饰器,导致前端传入的所有值为 null 的属性都能跳过 'class-validator' 的验证,顺利通过 ValidationPipe

而 undefined 和 null 对于 ORM ,例如 typeorm 有不同的含义,例如:
usersRepository.update({ name: null }) 表示将字段 name 更新为 null
usersRepository.update({ name: undefined }) 表示不对字段 name 进行更新

最终本该 not null 的字段接受了一个 null 值,导致数据库抛错 NOT NULL constraint failed


这应该是一个常见的应用场景吧?没人遇到类似的问题吗?
https://stackoverflow.com/questions/70380391/how-to-mark-certain-fields-as-nullable-or-not-nullable-in-nestjs-request-validat
https://stackoverflow.com/questions/68622366/nestjs-update-is-returning-null-for-other-fields-thereby-giving-validation-issue


附上测试代码,是我实现的方式不对吗?我在网上都搜不到这个问题
https://github.com/yodhcn/mapped-types-example

#null #name #PartialType #nestjs #update #https #com #class #validator #undefined
请教一下熟悉 TS/Node 的兄弟们,怎样调试 nestjs 的源码

想看一下 nestjs 的初始化流程,发现不知道怎样调试,如果很麻烦的话给几个关键词搜一下也可以,谢谢各位老哥

#nestjs #初始化 #一下 #老哥 #调试 #关键词 #流程 #各位 #谢谢 #麻烦
nestjs 有没有测试用例项目推荐的?

不知道怎么写 nestjs 中的 y 测试用例,大佬们推荐下

#nestjs #测试用例 #大佬 #推荐 #怎么 #知道
为什么 nestjs 没有 api 文档呢。

像比如 angular 这样的 https://angular.cn/api
要不然像 import { Reflector } from '@nestjs/core';
搜索 Reflector 只能找到教程,找不到完整的 api

#angular #api #Reflector #https #cn #import #nestjs #core #教程 #要不然
纯小白请教一下,关于后端管理系统的逻辑与业务逻辑,是要写到一个项目里吗?

纯小白,最近在新了解一点后端的东西,有点疑惑想要请教一下各位有经验的老哥

业务逻辑,比如说开发一个小秒杀活动,看到有 NestJS 这种项目可以做后端。

后端管理系统里的逻辑,给小秒杀活动添加商品信息,广告之类的,需要这么个后端管理系统去做管理,又不想从头手撸这么一个系统出来,于是搜索到了像 Ant.Design.Pro 这种有整套后端管理解决方案。

然后就蒙圈了,这两个项目有办法糅合在一起么,比如说逻辑分开写,但是读写同一个数据库的数据之类的?

还是说只用其中一个,业务逻辑跟后端管理逻辑写到用一个框架写完
1. 比如用 NestJS 再撸多一个后端管理系统出来
2. 或者是在 Ant.Design.Pro 提供的模板里把业务逻辑写进去?

#逻辑 #管理系统 #NestJS #Ant #Design #Pro #秒杀 #业务 #比如说 #一个
请教大家一个 typescript 前后端开发(react+nestjs),共用 interface 的问题

小白最近研究了下 nestjs 的 crud ,输入通过 class-validator 装饰器标注的 dto ,输出是直接透传 typeorm crud 返回的值,全程没有用到过 ts interface ,这种情况如果需要同步开发一个 ts-react 前端,该怎么在 service 文件夹定义 interface 呢,总不能手写一个吧

想到的办法:
nest cli 的 swagger plugin ,可以直接生成接口数据,然后前端再通过 swagger-typescript-api 转成 interface ,但似乎完全没有发挥 ts 全栈开发优势啊。

#ts #interface #crud #swagger #前端 #nestjs #class #validator #dto #透传