簡體   English   中英

Nest 無法解析存儲庫的依賴項

[英]Nest can't resolve dependencies of repository

我的 nestjs 應用程序出錯。 我無法弄清楚我的代碼有什么問題。 我的代碼是這樣的

應用模塊

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 {}

管理庫

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 中?

我認為問題在於您為提供者提供的名稱: AdminRepository 很可能, TypeOrm在內部使用該名稱為Admin實體創建存儲庫,因此名稱沖突。

如果您將提供者類重命名為其他任何內容(例如AdminRepoAdminService ),則錯誤應該會消失。 或者另一件事是將實體類從Admin重命名為其他名稱。

您要避免的是使用${EntityClassName}Repository創建一個類

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM