【问题标题】:Nest can't resolve dependencies of repositoryNest 无法解析存储库的依赖关系
【发布时间】: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 中?

【问题讨论】:

    标签: javascript node.js typescript nestjs typeorm


    【解决方案1】:

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

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

    您要避免使用${EntityClassName}Repository 创建一个类

    【讨论】:

    • 该死的......保留名称应该抛出错误或其他东西。
    猜你喜欢
    • 2022-01-17
    • 2018-11-21
    • 2020-03-12
    • 2020-07-03
    • 2021-04-28
    • 2020-03-07
    • 2019-12-15
    • 2020-12-14
    • 2020-12-13
    相关资源
    最近更新 更多