修复“Nest 无法解析 CashInService 的依赖关系”。

时间:2021-06-13 23:15:24

标签: mysql nestjs nestjs-config

为什么我总是收到这个错误提示

<块引用>

错误:Nest 无法解析 CashInService (?) 的依赖关系。请确保索引 [0] 处的参数 CashInRepository 在 AppModule 上下文中可用。

这是我的 CashInService 的结构:

import { Injectable } from "@nestjs/common";
import { CashIn } from "../../models/cash-in.entity";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";

@Injectable()
export class CashInService {
  constructor(
    @InjectRepository(CashIn) private cashInRepository: Repository<CashIn>) {
  }

  add(entry: CashIn): Promise<CashIn> {
    return this.cashInRepository.save(entry)
  }

  get(id: string): Promise<CashIn | undefined> {
    return this.cashInRepository.findOne(id)
  }
  getAll(): Promise<CashIn[]> {
    return this.cashInRepository.find()
  }
}

这是我的 CashIn 实体:

import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";

@Entity()
export class CashIn {
  @PrimaryGeneratedColumn()
  id?: string;
  @Column()
  cashAmount?: number;
// more columns...

更重要的是,这是我的应用模块。

import { Module } from '@nestjs/common';
import { AppController } from './controllers/app/app.controller';
import { AppService } from './app.service';
import { TransactionController } from "./controllers/transaction/transaction.controller";
import { CashInService } from "./services/cash-in/cash-in.service";
import { MysqlConnectionOptions } from "typeorm/driver/mysql/MysqlConnectionOptions";
import { CashOutService } from "./services/cash-out/cash-out.service";
import { TypeOrmModule } from "@nestjs/typeorm";

const ORMConfig : MysqlConnectionOptions = {
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: '',
  database: 'test',
  entities: ["dist/**/*.entity{.ts,.js}"],
  synchronize: true,
}

@Module({
  imports: [TypeOrmModule.forRoot(ORMConfig)],
  controllers: [AppController,TransactionController],
  providers: [AppService,CashInService,CashOutService],
})
export class AppModule {}

1 个答案:

答案 0 :(得分:2)

在您声明要使用的 TypeOrmModule.forFeature([CashIn])AppModule 中没有 CashInServce。这很重要,因为它告诉 Nest 创建要从 TypeOrmModule 使用的提供程序。