--- title: 整理 後端模組化 app-dashboard tags: v1 --- # 整理 後端模組化 app-dashboard 切成 LearningCurve / NFT / SmartIP # 想法 1 - 將各自的 app 依照區塊功能做拆分,一個區塊一個 function ![](https://i.imgur.com/2W47da0.jpg) ![](https://i.imgur.com/sEj0TwR.jpg) ![](https://i.imgur.com/W47Ay7e.jpg) ## 初步分離 - 將這三個 app 的資料邏輯切出去到 /models 下面 - LearningCurveDashboard.js - NFTDashboard.js - SmartIPDashboard.js - 每個下面在依據自己所需要的功能做撰寫 - ex: SmartIP Upload Manager , 寫在 `SmartIPDashboard.js` function `getIpfsList` ![](https://i.imgur.com/AaMLTmF.png) ## 遇到問題 - NFT 與 LearningCurve 的 badge card 與 Action Required 是在同一支程式做計算 ![](https://i.imgur.com/Q28KNfB.png) ## 與 Wenkai 討論後作法 1. 將判斷是否登入切開 2. 以好維護為主,一個 function 做一件事 3. 整理給前端的資料 # 想法 2 再將 learningCurve 依照每個 tab 切成一個 function - 寫一個 Class 叫 solution - 依照不同的 solution 建立不同的 object - 再去呼叫所需的 function ![](https://i.imgur.com/Z9WKKXr.jpg) ## 程式流程 `GET /my-apps/:fio_id` ``` new solution let action = solution.get_action_required let management = solution.get_user_management let usage = solution.get_usage_data let [actionList, manageList, usageData] = await Promise.all([actionList, management, usage]) ```