Я пытаюсь использовать mon goose и динамически настраивать соединение, выполняя то же самое из nest js .com, но в моем случае службы, которые мне нужно внедрить на завод, не будут решены. вот это AppModule
@Injectable()
class Op implements MongooseOptionsFactory {
constructor(
@Inject(forwardRef(() => EndpointsService))
private endpointsService: EndpointsService) {
}
createMongooseOptions(): MongooseModuleOptions {
return {
uri: this.endpointsService.loginMongoDb
};
}
}
@Module({
imports: [
MongooseModule.forRootAsync({
useClass: Op,
inject: [EndpointsService] // having this doesn't help either
})
],
controllers: [AppController, UserController],
providers: [AppService,
EndpointsService, // is in the core module, but won't be seen
UserService]
})
export class AppModule {
}
довольно просто (не обращайте внимания на название опа, я переместу его туда, где необходимо позже)
А вот это EndpointsService
@Injectable()
export class EndpointsService {
private readonly _loginApi: string;
private readonly _loginMongoDb: string;
constructor() {
....
но ap не запускается с ошибкой
[Nest] 83842 - 03/20/2020, 10:54:26 AM [NestFactory] Starting Nest application...
[0] [Nest] 83842 - 03/20/2020, 10:54:26 AM [InstanceLoader] MongooseModule dependencies initialized +14ms
[0] [Nest] 83842 - 03/20/2020, 10:54:26 AM [ExceptionHandler] Nest can't resolve dependencies of the Op (?). Please make sure that the argument EndpointsService at index [0] is available in the MongooseCoreModule context.
[0]
[0] Potential solutions:
[0] - If EndpointsService is a provider, is it part of the current MongooseCoreModule?
[0] - If EndpointsService is exported from a separate @Module, is that module imported within MongooseCoreModule?
[0] @Module({
[0] imports: [ /* the Module containing EndpointsService */ ]
[0] })
[0] +0ms
Я также пытался использовать обычную инъекцию без forwardRef
в классе Op
, но результат тот же.
Чего мне не хватает?