nestjs 和 typeorm - 未能设置依赖注入

nestjs and typeorm - failing to setup the dependency injection

我正在尝试使用 nestjstypeorm 来编写一个基本的 CRUD 应用程序,但我无法使依赖注入正常工作。我正在尝试将代码设置数据库放入单独的模块中并导入它。

这是我收到的错误:

[ExceptionHandler] Nest can't resolve dependencies of the QuestionController (?). Please make sure that the argument at index [0] is available in the current context. +14ms 4: v8::internal::MaybeHandle v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, 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) { }

}

感谢任何帮助或提示

您必须导出 QuestionModule 中的 QuestionLogic 提供程序。

您可以将它注入到导入 QuestionModule 的其他模块中。

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