问题描述
我有两个模块:AuthModule
和UserModule
;
UserModule
的外观如下:
@Module({
imports: [
forwardRef(() => AuthModule),TypeOrmModule.forFeature([
UserRepository,UserAuthRepository,UserSocialRepository,])
],controllers: [UserController],exports: [UserAuthService,UserSocialService,UserService],providers: [UserAuthService,})
export class UserModule {}
该模块具有3个服务:UserAuthService
,UserSocialService
和UserService
。
UserAuthService
的内容:
@Injectable()
export class UserAuthService {
/**
* UserAuthService constructor
* @param { UserAuthRepository } _userAuthRepository
* @param { UserRepository } _userRepository
* @param { UserService } _userService
* @param { UserSocialService } _userSocialService
*/
constructor(
private readonly _userAuthRepository: UserAuthRepository,private readonly _userRepository: UserRepository,private readonly _userService: UserService,private readonly _userSocialService: UserSocialService
) {}
}
UserSocialService
的内容:
@Injectable()
export class UserSocialService {
/**
* UserSocialService constructor
* @param { UserSocialRepository } _userSocialRepository
*/
constructor(
private readonly _userSocialRepository: UserSocialRepository,) {}
}
UserService
的内容:
@Injectable()
export class UserService {
/**
* UserService constructor
* @param { UserRepository } _userRepository
* @param { UserAuthService } _userAuthService
* @param { UserSocialService } _userSocialService
*/
constructor(
private readonly _userRepository: UserRepository,private readonly _userAuthService: UserAuthService,private readonly _userSocialService: UserSocialService
) {}
}
AuthModule
和UserModule
都具有forwardRef(() => Module)
的含义,因为它们彼此依赖。
但是,问题出在UserModule
内部,更具体地说是UserService
,由于某种原因,它无法解决UserAuthService
依赖性,从而产生了以下错误:
Error: Nest can't resolve dependencies of the UserService (UserRepository,?,UserSocialService). Please make sure that the argument dependency at index [1] is available in the UserModule context.
Potential solutions:
- If dependency is a provider,is it part of the current UserModule?
- If dependency is exported from a separate @Module,is that module imported within UserModule?
@Module({
imports: [ /* the Module containing dependency */ ]
})
这是UserModule
的结构:
user/
controllers/
dtos/
exceptions/
models/
repositories/
services/
- index.ts
- user.auth.service.ts
- user.service.ts
- user.social.service.ts
subscribers/
-index.ts
因此,即使所有3个服务都在一个模块中,并且将它们导出并标记为提供程序,NestJS出于某种原因仍无法解决它们。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)