验证模块递延用户模块
我有这需要有类似于AuthModule
一个UserModule
交互的广义库中的docs。
我想要做的就是定义的UserService
必须坚持的,而不是实际实现的接口。这将使实施细则图书馆的用户。
我已经尝试了几种不同的方法,如具有字符串标记APP_USER_SERVICE
最初null
然后由实现覆盖,但这似乎碰上注入null
值,而不是注入实际值的麻烦。
另一种方法我试过了,我有点像在做AuthModule.withUserModule(UserModule)
其中AuthModule
进口动态UserModule
并查找由APP_USER_SERVICE
实现中定义的UserModule
令牌。这种方法的问题是,它似乎陷入循环依赖地狱。
我是新来的NestJS项目,所以也许我失去了一些东西明显。如何组织这个工作流程的任何指针是极大的赞赏,感谢。
总之,这是我要的结构:
- > =取决于
图书馆:
AuthModule
- > IUserModule
用户:
AuthModule.withUserModule(UserModule)
填写IUserModule
要求。
UserModule
- > AuthModule
下面是代码(破大气压):
Library Sample Implementation
回答如下:与forwardRef()
工作只能是你的最后一招。可替代地,考虑分割模块中的一个为两个或多个部分打破循环依赖,例如:
AuthModule
成
AuthLoginModule
得到由UserModule进口ValidateAuthModule
进口UserModule
或分别UserModule
分成两个部分。