Nestjs 循环依赖 forwardRef() 的缺点

Jas*_*nov 2 circular-dependency nestjs

官方循环依赖说:

当两个类相互依赖时,就会发生循环依赖。例如,A 类需要 B 类,B 类也需要 A 类。在 Nest 中,模块之间和提供者之间可能会出现循环依赖。

虽然应该尽可能避免循环依赖,但你不能总是这样做。

不使用的原因是什么forwardRef()

Jay*_*iel 9

循环依赖通常意味着您具有紧密绑定的逻辑和可能无法扩展的不稳定架构。如果你真的不想关心这个,你可以随意添加forwardRef构造函数和服务,但这可能会导致一些奇怪的、难以解决的错误,并且在 Nest 社区中通常被视为一种不好的做法.

  • @JasurbekNabijonov 我参加聚会有点晚了,但这就是你要做的。您有一个开放的休息POST“登录”,其中使用可以使用用户名/密码登录作为示例,此端点返回一个jwt令牌。然后在示例 users/:id GET 的端点上添加一个守卫,该守卫检查 jwt 令牌是否有效。这不需要调用数据库,因为令牌是通过签名检查的。Nestjs 有非常好的文档,涉及构建稳定、安全的 api 所需的几乎所有内容:https://docs.nestjs.com/security/authentication (3认同)
  • Auth 通常是我看到紧密绑定逻辑的少数几个地方之一,这对于紧密绑定来说是有意义的。我最终创建了一个 AuthModule,它有自己的到用户表的连接,以及一个 UserModule,它有另一个到用户表的连接。最终重复了一些逻辑,但它防止了循环引用的发生,我很欣赏这一点。尽管如此,它在某种程度上成为了偏好。 (2认同)