Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 巢罐';t解析_Node.js_Angular_Typescript_Dependency Injection_Nestjs - Fatal编程技术网

Node.js 巢罐';t解析

Node.js 巢罐';t解析,node.js,angular,typescript,dependency-injection,nestjs,Node.js,Angular,Typescript,Dependency Injection,Nestjs,我正在尝试将AuthService用于UsersService,并将UsersService用于AuthService,因此这称为“循环依赖”。问题是“Nest无法解析AuthService(UserModel,JwtService,?)的依赖关系。请确保索引[2]处的参数依赖关系在AuthModule上下文中可用。” 用户模块: @Module({ imports: [ MongooseModule.forFeature([ { name: User.n

我正在尝试将AuthService用于UsersService,并将UsersService用于AuthService,因此这称为“循环依赖”。问题是“Nest无法解析AuthService(UserModel,JwtService,?)的依赖关系。请确保索引[2]处的参数依赖关系在AuthModule上下文中可用。”

用户模块:

@Module({
  imports: [
    MongooseModule.forFeature([
      {
        name: User.name, schema: UserSchema
      }
    ]),
    forwardRef(() => AuthModule),
  ],
  controllers: [UsersController],
  providers: [UsersService], 
  exports: [UsersService]
}) 
export class UsersModule {}enter code here
授权模块:

@Module({
  imports: [
    MongooseModule.forFeature([{name: User.name, schema: UserSchema}]),
    JwtModule.register({ secret: process.env.JWT_SECRET }),
    forwardRef(() => UsersModule),
  ],
  controllers: [AuthController],
  providers: [AuthService, JwtStrategy],
  exports: [AuthService, JwtModule]
})
export class AuthModule {}
用户服务(工作正常):

@Injectable()
导出类用户服务{
建造师(
@InjectModel(User.name)私有userModel:Model,
专用jwtService:jwtService,
私有authService:authService
) {}
...
AuthService(发生错误的位置):

@Injectable()
导出类身份验证服务{
建造师(
@InjectModel(User.name)私有userModel:Model,
专用jwtService:jwtService,
私有用户服务:用户服务,
) {}
...

您已经解决了模块之间的循环依赖关系,而不是服务之间的循环依赖关系。服务的每一方都需要
@Inject(forwardRef(()=>InjectedClass))
。因此您的
AuthService
将使用
@Inject(forwardRef(()=>UserService))
<
@Injectable()
export class UsersService {
  constructor(
      @InjectModel(User.name) private userModel: Model<UserDocument>,
      private jwtService: JwtService,
      private authService: AuthService
    ) {}
...
@Injectable()
export class AuthService {
  constructor(
      @InjectModel(User.name) private userModel: Model<UserDocument>, 
      private jwtService: JwtService,
      private userService: UsersService,
    ) {}
...