简体   繁体   中英

How to manually inject dependency in nestjs

In angular we can manually access and inject dependencies using the built in Injector class. By which you can access Injectables and Inject them without actually passing them in the constructor. Basically I want to inject a service to another service without passing it as an arg to the constructor.

This is the angular equivalent Inject a service manually

I wanted to achieve similar thing in nestjs

Note : The service to be injected also has a dependency, so I can't just instantiate it

I believe what you're looking for is Nest's ModuleRef class, where you can do something like the following:

@Injectable()
export class CatsService implements OnModuleInit {
  private service: Service;
  constructor(private moduleRef: ModuleRef) {}

  onModuleInit() {
    this.service = this.moduleRef.get(Service);
  }
}

Where Service should actually be the class you are wanting to inject.

you can initialize the service class and call its methods.

let s1 = new serviceClass()
s1.methodOfService1(args)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM