本文爲我的學習整理所得,但願對讀者有所幫助。javascript
如下概念引用egg.js官方示例html
簡單來講,Service 就是在複雜業務場景下用於作業務邏輯封裝的一個抽象層,提供這個抽象有如下幾個好處:java
使用場景node
下面咱們經過一個完整的例子,看看怎麼使用 Service。git
在app文件夾中建立servie文件夾,並新建good.js
(原則上service層與controller層的文件名對應)。github
const Service = require('egg').Service;
class GoodsService extends Service {
async index() {
return {
id: 789,
name: 'test_hefen',
}
}
}
module.exports = GoodsService;
複製代碼
要注意的是GoodsService要以首字母大寫的駝峯命名,不然調用時會報錯。數據庫
回到app/controller/good.js中,咱們對index
方法進行必定的修改瀏覽器
async index() {
const { ctx } = this;
const res = await ctx.service.goods.index();
ctx.body = res;
}
複製代碼
要注意的是await是必須的,不然調用時會出現空對象狀況。app
瀏覽器輸入http://localhost:7001/goods
,就能夠看到調用結果啦async
goods
這個服務,這裏就不重複敘述了
估計要Pass幾章節纔會有實踐項目,這裏就看成是嘮叨吧
PS:所有的代碼倉庫:github.com/hejian1993/…,暫時沒有分章節,僅供參考。
我是河粉,咱們下一節見
三個月前,一我的關注了我,他娶了一個如花似玉的老婆。 一週前,一我的關注了我,他中了888億。 今年,關注了個人人都娶了如花似玉的老婆結婚那天還中888億。 我已開過光,話已經放到這了。