Nest 使用 TypeORM 报错“Nest can\'t resolve dependencies of the BookService...”,如何解决?

nest 使用 typeorm 报错“nest can't resolve dependencies of the bookservice...”,如何解决?

nest如何使用typeorm

在nest框架中使用typeorm时,常常会遇到报“nest can't resolve dependencies of the bookservice (?). please make sure that the argument bookentityrepository at index [0] is available in the appmodule context.”的错。

以下是导致此问题的一些原因和解决方案:

  • 检查 app.module.ts 中是否错写了控制器和提供器的名称,将其添加到 imports 数组中。
  • 确保 bookentity 模块已被 appmodule 导入。
  • 检查 bookentityrepository 是否正确注入到 bookservice 中。

以下是修改后的代码示例:

app.module.ts

@module({
    imports: [typeormmodule.forroot({
        type: 'mysql',
        host: 'localhost',
        port: 3306,
        username: 'root',
        password: 'root',
        database: 'root',
        entities: [__dirname + '/**/*.entity.{js,ts}'],
        synchronize: true,
        timezone: 'z',
    }), bookmodule],
})
export class appmodule { }

book.module.ts

@module({
  imports: [typeormmodule.forfeature([bookentity])],
  controllers: [bookcontroller],
  providers: [bookservice],
  exports: [bookservice]
})
export class bookmodule { }

book.service.ts

import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
import { BookEntity } from './book.entity';

@Injectable()
export class BookService {
  constructor(
    @InjectRepository(BookEntity)
    private readonly bookRepository: Repository<BookEntity>,
  ) { }

  async findAll(): Promise<BookEntity[]> {
    return await this.bookRepository.find();
  }
}

进行上述更改后,报错应不再出现。如果仍遇到问题,请确保项目中所有依赖项都已正确安装。

以上就是Nest 使用 TypeORM 报错“Nest can't resolve dependencies of the BookService...”,如何解决?的详细内容,更多请关注其它相关文章!