注入其他模块服务上的Nestjs自定义配置服务错误

注入其他模块服务上的Nestjs自定义配置服务错误,nestjs,nestjs-config,Nestjs,Nestjs Config,我想解释一下我想做什么。 我想从数据库中获取数据库配置并连接到它。最好举个例子来更好地理解。我在数据库A中有3个数据库A、B、C存储数据库B和C配置信息,如用户名、密码和数据库名(BD B和BD C的用户名等)。我在数据库(B和C)中都有用户,例如,David身份验证凭据在数据库B中,Justin身份验证凭据在数据库C中。当David想要进行身份验证时,后端应连接到DB B,然后获取他的凭据 所以我写了一些代码,但我得到了一个错误 我的工作代码: 在app.module.ts中 UsersMod

我想解释一下我想做什么。 我想从数据库中获取数据库配置并连接到它。最好举个例子来更好地理解。我在数据库A中有3个数据库A、B、C存储数据库B和C配置信息,如用户名、密码和数据库名(BD B和BD C的用户名等)。我在数据库(B和C)中都有用户,例如,David身份验证凭据在数据库B中,Justin身份验证凭据在数据库C中。当David想要进行身份验证时,后端应连接到DB B,然后获取他的凭据

所以我写了一些代码,但我得到了一个错误

我的工作代码:

在app.module.ts中

UsersModule有一个实体用于存储数据库配置=>DB A PlayerModule具有存储用户凭据=>DB B的实体(此处保存了David auth凭据)


@模块({
进口:[
TypeOrmModule.forRoot(),
TypeOrmModule.forRootAsync({
useClass:DynamicDbConfigService,
}),
ConfigModule.forRoot(),
用户模块,
播放器模块,
DynamicDbConfigModule,
],
控制器:[AppController],
提供者:[AppService],
})
导出类AppModule{}
这是ormconfig js文件


module.exports={
名称:“默认值”,
键入:“mysql”,
主机:process.env.DB_主机,
端口:process.env.DB_端口,
用户名:process.env.DB_用户名,
密码:process.env.BD_密码,
数据库:process.env.DB_NAME,
实体:['dist/***/*.entity{.ts、.js}'],
同步:对,
};
我有两个文件用于动态获取DB config

在dynamic-db-config.service.ts中

我使用服务(UsersService)根据请求获取DB凭据。params(发送DB名称)


@可注入({scope:scope.REQUEST})
导出类DynamicDbConfigService实现TypeOrmOptionsFactory{
建造师(
@注入(请求)私有只读请求:请求,
私有用户服务:用户服务,
) {}
createTypeOrmOptions(
connectionName?:字符串,
):承诺|类型或模块选项{
返回this.usersService.getServerDetail(this.request.params.serverName);
}
}
dynamic-db-config.module.ts


@模块({
导入:[UsersModule],
提供者:[DynamicDbConfigService],
导出:[DynamicDbConfigService],
})
导出类DynamicDbConfigModule{}
users.service.ts


异步getServerDetail(serverName):承诺{
const dbDetail=等待this.userRepository.findOne({
其中:{dbName:serverName},
});
返回{
名称:“动态CDB”,
数据库:dbDetail.dbName,
主机:“localhost”,
用户名:“bla bla bla”,
密码:“bla bla bla”,
键入:“mysql”,
港口:3306,
};
}
这是users.module.ts


@模块({
导入:[TypeOrmModule.forFeature([User])],
控制器:[UsersController],
提供者:[用户服务],
导出:[UsersService],
})
导出类UsersModule{}
因此,当我想运行这段代码时,我在dynamic-db-config.service.ts中得到了usersService的一个错误

错误是:

我哪里出错了

```
Error: Nest can't resolve dependencies of the DynamicDbConfigService (REQUEST, ?). Please make sure that the argument UsersService at index [1] is available in the TypeOrmCoreModule context.

Potential solutions:
- If UsersService is a provider, is it part of the current TypeOrmCoreModule?
- If UsersService is exported from a separate @Module, is that module imported within TypeOrmCoreModule?
  @Module({
    imports: [ /* the Module containing UsersService */ ]`enter code here`
  })

```