Nest 无法解析存储库的依赖关系

Posted

技术标签:

【中文标题】Nest 无法解析存储库的依赖关系【英文标题】:Nest can't resolve dependencies of repository 【发布时间】:2020-06-04 06:07:50 【问题描述】:

我的 nestjs 应用程序出错。我无法弄清楚我的代码出了什么问题。一世 代码是这样的

AppModule

import  Module  from '@nestjs/common';
import  TypeOrmModule  from '@nestjs/typeorm';
import  AdminModule  from './components/admin.modules';

@Module(
    imports: [
        AdminModule,
        TypeOrmModule.forRoot(
          type: 'postgres',
          host: process.env.DATABASE_HOST,
          username: process.env.DATABASE_USERNAME,
          password: process.env.DATABASE_PASSWORD,
          database: process.env.DATABASE_NAME,
          port: parseInt(process.env.DATABASE_PORT),
        ),
    ],
)
export class AppModule 

管理模块

import  Module  from '@nestjs/common';
import  TypeOrmModule  from '@nestjs/typeorm';

import  Admin  from './admin.entity';
import  AdminRepository  from './admin.repository';

@Module(
    imports: [TypeOrmModule.forFeature([Admin])],
    providers: [AdminRepository],
)
export class AdminModule 

AdminRepository

import  Injectable  from '@nestjs/common';
import  InjectRepository  from '@nestjs/typeorm';
import  Repository  from 'typeorm';

import  RepositoryBase  from '../../common/base/repository.base';
import  Admin  from './admin.entity';

@Injectable()
export class AdminRepository extends RepositoryBase<Admin> 
    constructor(@InjectRepository(Admin) private readonly repo: Repository<Admin>) 
        super(repo);

我得到的是这样的错误

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

可能的解决方案: - 如果 AdminRepository 是提供者,它是当前 AdminModule 的一部分吗? - 如果 AdminRepository 是从单独的 @Module 导出的,那么该模块是否会导入到 AdminModule 中?

【问题讨论】:

【参考方案1】:

我认为问题在于您给提供者的名称:AdminRepository。很可能,TypeOrm 在内部使用该名称为 Admin 实体创建存储库,因此名称冲突。

如果您将提供程序类重命名为其他任何名称(例如 AdminRepoAdminService),错误应该会消失。 或者另一件事是将实体类从 Admin 重命名为其他名称。

您要避免使用$EntityClassNameRepository 创建一个类

【讨论】:

该死的......保留名称应该抛出错误或其他东西。

以上是关于Nest 无法解析存储库的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章

Nest 无法解析 PhotoService 的依赖关系(?)

Nest 无法解析 UsersService (UserModel, ?) 的依赖关系

Nest 无法解析 RabbitMQService 服务的依赖关系

Nest 在测试期间无法解析 UserService 的依赖关系

使用 Typeorm 连接到 Nestjs 中的 mssql,但 Nest 无法解析 EmployeeRepository 的依赖关系

Nest 无法解析 UserModel 的依赖项(?)