Javascript Nestjs:将提供程序注入到由关键字new创建的对象中
我正在尝试向Javascript Nestjs:将提供程序注入到由关键字new创建的对象中,javascript,node.js,typescript,dependency-injection,nestjs,Javascript,Node.js,Typescript,Dependency Injection,Nestjs,我正在尝试向new创建的对象注入提供程序。可能吗?例如: @Injectable() export class SomeService { } export class SomeObject { @Inject() service: SomeService; } let obj = new SomeObject(); 在我的测试中,它不起作用,obj.service未定义。否,依赖项注入系统将只对使用它创建的对象起作用。 您可以创建SomeObject,例如使用useClass: @In
new
创建的对象注入提供程序。可能吗?例如:
@Injectable()
export class SomeService {
}
export class SomeObject {
@Inject()
service: SomeService;
}
let obj = new SomeObject();
在我的测试中,它不起作用,
obj.service
未定义。否,依赖项注入系统将只对使用它创建的对象起作用。
您可以创建SomeObject
,例如使用useClass
:
@Injectable()
class SomeObject {
constructor(private someService: SomeService) {}
}
@Module({
providers: [
SomeService,
{ provide: SomeObject, useClass: SomeObject },
],
})
export class ApplicationModule {}
或使用使用工厂
进行自定义设置逻辑:
const someObjectFactory = {
provide: 'SomeObject',
useFactory: (someService: SomeService) => {
// custom setup logic
return new SomeObject(someService);
},
inject: [SomeService],
};
@Module({
providers: [SomeService, connectionFactory],
})
export class ApplicationModule {}
不,依赖项注入系统将只处理用它创建的对象。 您可以创建
SomeObject
,例如使用useClass
:
@Injectable()
class SomeObject {
constructor(private someService: SomeService) {}
}
@Module({
providers: [
SomeService,
{ provide: SomeObject, useClass: SomeObject },
],
})
export class ApplicationModule {}
或使用使用工厂
进行自定义设置逻辑:
const someObjectFactory = {
provide: 'SomeObject',
useFactory: (someService: SomeService) => {
// custom setup logic
return new SomeObject(someService);
},
inject: [SomeService],
};
@Module({
providers: [SomeService, connectionFactory],
})
export class ApplicationModule {}