nestjs и typeorm - не удалось настроить внедрение зависимости - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь использовать nestjs и typeorm для написания работающего базового приложения CRUD, но мне не удается запустить внедрение зависимостей.Я пытаюсь поместить код, настраивающий базу данных в отдельные модули и импортировать ее.

Это ошибка, которую я получаю:

[ExceptionHandler] Nest не может разрешить зависимостиВопрос Контроллер (?).Пожалуйста, убедитесь, что аргумент с индексом [0] доступен в текущем контексте.+ 14ms 4: v8 :: internal :: MaybeHandle v8 :: internal: :( анонимное пространство имен) :: HandleApiCallHelper (v8 :: internal :: Изолировать *, v8 :: internal :: Handle, v8 :: internal :: Handle,v8 :: internal :: Handle, v8 :: internal :: Handle, v8 :: internal :: BuiltinArguments) [/ usr / local / bin / node]

Это базовая структура кода:

database.module.ts

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'sqlite',
      database: 'database.sqlite',
    }),
  ],
})
export class DatabaseModule {
}

question.module.ts:

@Module({
  imports: [
    DatabaseModule,
    TypeOrmModule.forFeature([Question]),
  ],
  providers: [QuestionDal, QuestionLogic],
})
export class QuestionModule {
}

app.module.ts

@Module({
  imports: [QuestionModule],
  controllers: [QuestionController],
  providers: [],
})
export class AppModule {
}

question.dal.ts

@Injectable()
export class QuestionDal {

  constructor(@InjectRepository(Question) private questionRepo: Repository<Question>) { }

}

question.logic.ts

@Injectable()
export class QuestionLogic {
  constructor(private questionDal: QuestionDal) { }
}

question.controller.ts

@Controller()
export class QuestionController {
  constructor(private readonly appService: QuestionLogic) { }

}

Я ценю любую помощь или подсказку

1 Ответ

0 голосов
/ 02 октября 2018

Вы должны экспортировать QuestionLogic провайдера внутри QuestionModule.

. Вы сможете внедрить его в другие модули, импортирующие QuestionModule.

@Module({
  imports: [
    DatabaseModule,
    TypeOrmModule.forFeature([Question]),
  ],
  providers: [QuestionDal, QuestionLogic],
  exports: [QuestionLogic] 
})
export class QuestionModule {
}
.
...