繁体   English   中英

nestjs和typeorm-无法设置依赖项注入

[英]nestjs and typeorm - failing to setup the dependency injection

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

这是我得到的错误:

[ExceptionHandler] Nest无法解析QuestionController(?)的依赖项。 请确保索引[0]的参数在当前上下文中可用。 + 14ms 4:v8 :: internal :: MaybeHandle v8 :: internal::(匿名命名空间):: 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) { }

}

感谢您的帮助或提示

你必须出口QuestionLogic提供商内部QuestionModule

您将能够将其注入导入QuestionModule其他模块中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM