#每天都是崭新的一天#再累也要照顾好自己

Service

有时候项目里需要调用一些第三方的服务,如:调用 Github 相关接口。如果直接在 controller 里直接调用这些接口,一方面导致 controller 代码比较复杂,另一方面也不能更多进行代码复用。

对于这些情况,可以包装成 service 供 controller 里调用。

创建 service

可以通过命令 thinkjs service [name] 来创建命令,具体使用请见 扩展功能 -> ThinkJS 命令 -> 添加 service

默认生成的 service 是一个 class,但有些 service 直接提供一些静态方法即可,这时候可以把 class 改为对象即可。

加载 service

可以通过 think.service 加载一个 service,如:

export default class extends think.controller.base {
  indexAction(){
    let GithubService = think.service('github');
    let instance = new GithubService();
  }
}

如果想跨模块加载 service,可以通过下面的方式:

export default class extends think.controller.base {
  indexAction(){
    let GithubService = think.service('github', 'admin'); //加载 admin 模块下的 github service
    let instance = new GithubService();
  }
}

:如果项目不是特别复杂,建议把 service 放在 common 模块下,可以就都可以方便的加载了。

文章来源:http://www.thinkjs.org


感谢你的阅读,本文由 sau交流学习社区 版权所有。
如若转载,请注明出处:sau交流学习社区-power by saucxs(程新松)(/page/275.html)
交流咨询
    官方QQ群
    群号663940201,欢迎加入!
    sau交流学习社区交流群

微信群
欢迎加入微信群
微信公众号
欢迎关注微信公众号
微信群
saucxs聊天机器人
saucxs
hi ,欢迎来到sau交流学习社区,欢迎与我聊天,问我问题哦!
您正在使用的浏览器是,不在支持范围内!
为了您的正常使用与展示,推荐使用Chrome浏览器68以上版本
支持浏览器:
火狐浏览器最新版
Safari浏览器最新版
Edge浏览器最新版
IE浏览器10,11