This is my owners.service.ts
import { Injectable } from '@nestjs/common'
import { CreateOwnerInput } from './dto/create-owner.input'
import { UpdateOwnerInput } from './dto/update-owner.input'
import { InjectRepository } from '@nestjs/typeorm'
import { Owner } from './entities/owner.entity'
import { Repository } from 'typeorm'
import { Pet } from '../pets/pet.entity'
import { PetsService } from '../pets/pets.service'
@Injectable()
export class OwnersService {
constructor(
@InjectRepository(Owner)
private ownersRepository: Repository<Owner>, // private petsService: PetsService,
) {}
create(createOwnerInput: CreateOwnerInput) {
const newOwner = this.ownersRepository.create(
createOwnerInput,
)
return this.ownersRepository.save(newOwner)
}
findAll() {
return this.ownersRepository.find()
}
findOne(id: number) {
return this.ownersRepository.findOneOrFail({
where: { id },
})
}
update(id: number, updateOwnerInput: UpdateOwnerInput) {
return `This action updates a #${id} owner`
}
remove(id: number) {
return `This action removes a #${id} owner`
}
// getPets(id: number): Promise<Pet[]> {
// return this.petsService.findAllForOwner(id)
// }
}
As soon as I comment back in the injection for the petsService in the constructor I am getting this error
Nest] 17328 - 07/19/2023, 11:35:12 PM ERROR [ExceptionHandler] Nest can't resolve dependencies of the OwnersService (OwnerRepository, ?). Please make sure that the argument dependency at index [1] is available in the OwnersModule context.
Potential solutions:
- Is OwnersModule a valid NestJS module?
- If dependency is a provider, is it part of the current OwnersModule?
- If dependency is exported from a separate @Module, is that module imported within OwnersModule?
@Module({
imports: [ /* the Module containing dependency */ ]
})
However I have already included the PetsModule which exports the PetsService as a import in my OwnersModule
This is my owners.module.ts
import { forwardRef, Module } from '@nestjs/common'
import { OwnersService } from './owners.service'
import { OwnersResolver } from './owners.resolver'
import { TypeOrmModule } from '@nestjs/typeorm'
import { Owner } from './entities/owner.entity'
import { PetsModule } from '../pets/pets.module'
@Module({
imports: [
TypeOrmModule.forFeature([Owner]),
forwardRef(() => PetsModule),
],
providers: [OwnersResolver, OwnersService],
exports: [OwnersService],
})
export class OwnersModule {}
and this is my pets.module.ts
import { forwardRef, Module } from '@nestjs/common'
import { PetsService } from './pets.service'
import { PetsResolver } from './pets.resolver'
import { TypeOrmModule } from '@nestjs/typeorm'
import { Pet } from './pet.entity'
import { OwnersModule } from '../owners/owners.module'
@Module({
imports: [
TypeOrmModule.forFeature([Pet]),
forwardRef(() => OwnersModule),
],
providers: [PetsResolver, PetsService],
exports: [PetsService],
})
export class PetsModule {}
I started getting the error after adding the forwardRef but previously I was getting another error about circual dependencies
If
PetsService
is circular withOwnersService
you need to add@Inject(forwardRef(() => OtherService))
in both services, just like you did for the modules