yacan8 / express-vue-web-slush

express、vue脚手架
22 stars 5 forks source link

请问怎么在一个api中注入两个不同的service? #10

Open huangyujun opened 3 years ago

huangyujun commented 3 years ago

如题: 有些业务场景需要操作两个不同的表,那就会涉及到两个service,看到例子中只能在构造器里注入一个service,那另一个service怎么注入呢

yacan8 commented 3 years ago

如题: 有些业务场景需要操作两个不同的表,那就会涉及到两个service,看到例子中只能在构造器里注入一个service,那另一个service怎么注入呢

构造函数中可以根据需求取出对应的service,取出的同时,awilix会自动实例化对应的service,比如

@route('/todo')
export default class TodoAPI {
  constructor({ todoService, otherService }) {
    this.todoService = todoService;
    this.otherService = otherService; // 注入otherService
  }

}
huangyujun commented 3 years ago

如题: 有些业务场景需要操作两个不同的表,那就会涉及到两个service,看到例子中只能在构造器里注入一个service,那另一个service怎么注入呢

构造函数中可以根据需求取出对应的service,取出的同时,awilix会自动实例化对应的service,比如

@route('/todo')
export default class TodoAPI {
  constructor({ todoService, otherService }) {
    this.todoService = todoService;
    this.otherService = otherService; // 注入otherService
  }

}

这个方式试过啦,会报500 @yacan8 ,不知道是不是我命名的问题? 我的service 命名 GameDataService,在构造器中是 gameDataService 这么写吧?

yacan8 commented 3 years ago

如题: 有些业务场景需要操作两个不同的表,那就会涉及到两个service,看到例子中只能在构造器里注入一个service,那另一个service怎么注入呢

构造函数中可以根据需求取出对应的service,取出的同时,awilix会自动实例化对应的service,比如

@route('/todo')
export default class TodoAPI {
  constructor({ todoService, otherService }) {
    this.todoService = todoService;
    this.otherService = otherService; // 注入otherService
  }

}

这个方式试过啦,会报500 @yacan8 ,不知道是不是我命名的问题? 我的service 命名 GameDataService,在构造器中是 gameDataService 这么写吧?

500的具体报错内容是什么?