通过接口注入服务
我喜欢为接口编写代码。所以...我有一个接口..'MyService'和一个类'MyServiceImpl Implements MyService'。我有一个带有构造函数的控制器:
constructor(@service() private myService : MyService){}
或
constructor(@service('services.MyService') private myService : MyService){}
并且...这不起作用。我缺少一个绑定..或其他东西。我可以用 @injectable 装饰 MyServiceImpl,但环回似乎无法识别“MyServiceImpl”是“MyService”。我尝试创建一个“MyServiceProvider”,
injectable.provider({scope: BindingScope.SINGLETON})
export class MyServiceProvider implements Provider<MyService> {...}
但没有任何乐趣。我什至看到:
loopback:context:binding Bind services.MyService to provider MyServiceProvider.
但是..无论我尝试什么,我仍然得到
Error: No binding found for services.MyService
Make sure a service binding is created in context MyAppApplication-Sowav28XQmuFEB31ZTvPMQ-0 with serviceInterface (services.MyService)
I like to code to interfaces. So... I have an interface.. 'MyService' and an class 'MyServiceImpl implements MyService'. I have a controller with constructor:
constructor(@service() private myService : MyService){}
or
constructor(@service('services.MyService') private myService : MyService){}
And... this doesn't work. I'm missing a binding.. or something. I can decorate MyServiceImpl with @injectable, but loopback can't seem to recognize that 'MyServiceImpl' is a 'MyService. I tried creating a 'MyServiceProvider',
injectable.provider({scope: BindingScope.SINGLETON})
export class MyServiceProvider implements Provider<MyService> {...}
but no joy. I'm even seeing:
loopback:context:binding Bind services.MyService to provider MyServiceProvider.
But.. no matter what I try, I still get
Error: No binding found for services.MyService
Make sure a service binding is created in context MyAppApplication-Sowav28XQmuFEB31ZTvPMQ-0 with serviceInterface (services.MyService)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
@service 从来没有为我工作过,但是 @inject 工作得很好...虽然不是通过接口,而是通过密钥...现在对我来说已经足够了。
@service never worked for me, but @inject worked fine... though not by interface, but by key... which is sufficient for me for now.