es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué no puede NestJ resolver las dependencias?

Tengo una aplicación Nest y me he quedado atascado en lo que parece ser un problema muy básico.

Necesito usar el PlaceVerificationRequestService en el PlaceService, pero no puedo inyectarlo correctamente sin recibir el siguiente error:

Nest no puede resolver las dependencias de PlaceService (PlaceRepository, ClientService, ?). Por favor, asegúrate de que el argumento de dependencia en el índice [2] esté disponible en el contexto de PlaceModule.

Mi enfoque ha sido seguir el mismo estilo que seguí al importar e inyectar el ClientService en el PlaceService, pero aún así no funciona y no puedo entender por qué.

Este es mi código.

place.module.ts


@Module({
imports: [
MikroOrmModule.forFeature({
entities: [Place, Client, PlaceVerificationRequest],
}),
],
providers: [PlaceService, ClientService, PlaceVerificationRequestService],
controllers: [PlaceController],
exports: [PlaceService],
})

place-verification-request.module.ts


@Module({
imports: [
MikroOrmModule.forFeature({
entities: [PlaceVerificationRequest, Client, Place],
}),
],
providers: [PlaceVerificationRequestService, ClientService, PlaceService],
controllers: [PlaceVerificationRequestController],
exports: [PlaceVerificationRequestService],
})

place.service.ts


@Injectable()
export class PlaceService {
constructor(
@InjectRepository(Place)
private readonly placeRepo: EntityRepository<Place>,
private readonly clientService: ClientService,
private readonly reqService: PlaceVerificationRequestService,
) {}

Se siente como si me estuviera perdiendo algo que está justo delante de mi nariz, ya que se siente muy básico, pero no puedo encontrarlo. ¿Alguien tiene alguna idea? Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que podrías estar omitiendo la declaración de importación para el PlaceVerificationRequestModule en el PlaceModule. Sin importarlo, la aplicación Nest no podrá inyectar correctamente el PlaceVerificationRequestService en el PlaceService.

    Para solucionar este problema, puedes agregar la siguiente declaración de importación en tu archivo place.module.ts:

    import { PlaceVerificationRequestModule } from 'ruta/hacia/place-verification-request.module';
    

    Y luego agregar el PlaceVerificationRequestModule al arreglo de imports:

    @Module({
      imports: [
        MikroOrmModule.forFeature({
          entities: [Place, Client, PlaceVerificationRequest],
        }),
        PlaceVerificationRequestModule, // agregar esta línea
      ],
      providers: [PlaceService, ClientService, PlaceVerificationRequestService],
      controllers: [PlaceController],
      exports: [PlaceService],
    })
    

    Asegúrate de reemplazar ruta/hacia/place-verification-request.module con la ruta real hacia tu PlaceVerificationRequestModule.

    Después de realizar estos cambios, la aplicación Nest debería ser capaz de inyectar correctamente el PlaceVerificationRequestService en el PlaceService.

Comments are closed.