egg --- 初始化一个egg项目基本结构说明
生活随笔
收集整理的這篇文章主要介紹了
egg --- 初始化一个egg项目基本结构说明
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Egg.js體驗
- 全局安裝
Egg.js的結(jié)構(gòu)
- 路由(Router): 將請求URL和具體承擔執(zhí)行動作的Controller的關(guān)系對應(yīng)
- 控制器(Controller):
- Restful: 接收用戶的參數(shù),從數(shù)據(jù)中查找內(nèi)容返回給用戶
- 頁面請求: 根據(jù)用戶訪問不同的URL,渲染不同的模板得到HTML返回給用戶
- 代理服務(wù)器: 將用戶的請求轉(zhuǎn)發(fā)到其他服務(wù)器上.
- 服務(wù)(Service):
- Service就是將復雜業(yè)務(wù)場景下用于做業(yè)務(wù)封裝的一個抽象層
- 好處:
- 保持Controller簡潔
- 業(yè)務(wù)邏輯獨立性: 用戶業(yè)務(wù)PCController + MobileController
- 邏輯和展現(xiàn)分離:
- 容易編寫測試用例
- 無容器依賴對象 (body header)
- 數(shù)據(jù)庫:
- mongoose
- sequelize
基本使用
- 使用egg-init生成的結(jié)構(gòu)如下
- 自己添加一個Service層
- 打開egg-example/app/router.js, 有如下代碼:
- 在這一層,將路由請求/ 和處理函數(shù) controller.home.index對應(yīng)起來
- controller.home.index其實是對應(yīng)Controller層.
- 找到Controller(文件夾)下面的文件home.js,打開如下:
- 說明:
- 使用 const Controller = require('egg').Controller得到egg框架中的Controller基類
- 自定義類繼承與Controller基類 class HomeController extends Controller
- 在里面聲明了一個異步方法 async index(){...}
- 將自定義的類導出,module.exports = HomeController
- 這里的index 對應(yīng)路由層(Router)中的 controller.home.index
類似的加一個Service層
- 假設(shè)是User的服務(wù)處
- 目錄結(jié)構(gòu)自己新建,代碼保存于’/egg-example/app/service/user.js’
在Controller層中使用Service層的服務(wù)
- 1.首先從this中獲取上下文 const {ctx} = this
- 2.Service層中(繼承基類Service)的方法全部掛載在ctx.service上
- 調(diào)用如下:
總結(jié)
以上是生活随笔為你收集整理的egg --- 初始化一个egg项目基本结构说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python接口测试jason_Pyth
- 下一篇: 【知识蒸馏】让LSTM重返巅峰!