服务类

服务类Service是对控制器中复杂业务逻辑、第三方接口调用等场景进行抽象和封装。

如果Service无返回值,或者单纯的是一个异步处理,可以很方便的实现切面编程。

创建服务类

使用thinkoa_cli命令行工具:

think service test

会自动创建src/service/test.js,生成的模板代码:

const {base, helper} = require('thinkkoa');

module.exports = class extends base{
    init(params){
        this.params = params;
    }
}

除init构造方法以外,你可以自行添加其他方法实现业务逻辑。

服务类实例化

服务类的实例化:

const test = require('../service/test.js');

let testService = new test(params);

params是服务类的构造方法入参。

服务类的调用

在ThinkKoa中,不管是控制器,还是中间件中,都可以很方便的调用服务类:

//调用test服务类的customMethod方法
testService.customMethod(xxx); 

服务类的继承

const test = require('../service/test.js');

class extends test {
    ...
}