Model
模型,負責和資料庫溝通。應用程式和資料庫是兩個不同的東西,在應用程式裡想要做「新增/瀏覽/修改/刪除」的動作,就需要先有 Model 層幫忙去資料庫裡取出必要的資料,把資料放進應用程式裡的某個程式物件,然後才能用 JavaScript 去操作該物件。
Model 管理的功能層被稱做「邏輯層」,更明確一點說,是和「商業邏輯」有關的功能。
View
視圖」,View 所管理的功能層叫作「表現層 (presentation layer)」,顧名思義是負責管理畫面的呈現,也就是 HTML 樣板 (template)。
在開發框架裡,因為 HTML template 會有需要以動態顯示資料的情況 (也就是由 Model 取出的資料內容),所以 View 會再進一步運用樣板引擎 (template engine) 將資料帶入 template。我們很快就會在實作中看到相關細節。
Controller
控制器,它掌握使用者互動邏輯,也是應用程式收發 request/response 的核心。來自路由的 request 會先被送到 Controller,再由 Controller 通知 Model 調度資料,並且把資料傳遞給 View 來產生樣板 (template),並將呈現資料的 HTML 頁面回傳給客戶端。
你可以把 Controller 想做是 MVC 架構的中間人,它決定了應用程式的工作流程 (workflow),並且蒐集不同元件的工作結果,統一回傳給使用者。以下常見的設計問題,會由 Controller 來控制: