服务

Service 就是在复杂业务场景下用于做业务逻辑封装的一个抽象层,提供这个抽象有以下几个好处:

  • 保持 Controller 中的逻辑更加简洁。
  • 保持业务逻辑的独立性,抽象出来的 Service 可以被多个 Controller 重复调用。
  • 将逻辑和展现分离,更容易编写测试用例。

定义Service

app/service/user.js

const Service = require('egg').Service;
class UserService extends Service {
  async find(uid) {
    const user = await this.app.mysql.query('select * from user where uid = ?', uid);
    return user;
  }
}
module.exports = UserService;

在控制器中使用服务

app/controller/user.js

exports.list = async ctx => {
  const data = await ctx.service.user.find(1);
  ctx.body = {
    status: 1,
    data,
    msg: 'ok',
  };
};

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress