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