代码之家  ›  专栏  ›  技术社区  ›  Node.JS

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

  •  1
  • Node.JS  · 技术社区  · 7 年前

    nestjs typeorm 写一个基本的CRUD应用程序,但我没有得到依赖注入工作。我试图把数据库的代码设置成单独的模块并导入它。

    这是我得到的错误:

    问题控制器(?)。请确保索引处的参数 [0]在当前上下文中可用+14毫秒4: v8::内部::MaybeHandle 命名空间)::HandleApiCallHelper(v8::internal::Isolate*, v8::内部::句柄, v8::内部::句柄,

    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 回复  |  直到 7 年前
        1
  •  4
  •   jbrtrnd    7 年前

    你必须导出 QuestionLogic 提供程序内部 QuestionModule .

    您将能够将它注入到导入 .

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