내 nestjs 앱에서 오류가 발생했습니다. 내 코드로 무엇이 짜여져 있는지 알아낼 수 없습니다. I 코드는 다음과 같습니다.
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 {}
AdminModule
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 (?)의 종속성을 확인할 수 없습니다. AdminModule 컨텍스트에서 인덱스 [0]의 AdminRepository 인수를 사용할 수 있는지 확인하십시오.
잠재적 솔루션 :-AdminRepository가 공급자 인 경우 현재 AdminModule의 일부입니까? -AdminRepository를 별도의 @Module에서 내보내는 경우 해당 모듈을 AdminModule 내에서 가져 오나요?
문제는 귀하가 제공자에게 제공하는 이름 인 것 같습니다 : AdminRepository
. 내부적으로 TypeOrm
는 Admin
엔티티에 대한 저장소를 만드는 데 해당 이름을 사용 하므로 이름이 충돌합니다.
제공자 클래스의 이름을 다른 것으로 바꾸면 (예 : AdminRepo
또는 AdminService
) 오류가 사라집니다. 또는 할 또 다른 일은 엔티티 클래스의 이름을 다른 것으로 바꾸는 Admin
것입니다.
피하고 싶은 것은 ${EntityClassName}Repository
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다