什么是MVC?
是一种设计方式、是一种设计方案、是一种设计思想
- MVC不是设计模式,是跟架构相关的 -> 项目的如何设计分层
- 我们想把逻辑抽离出来
从哪里抽离?
- 从路由抽离出来,再把操作数据的再抽离出来
- controller:
控制器层
(跟视图相关的逻辑部分还有跟数据不相关的一些逻辑)- 1.调用模型层对数据库的操作,并获取相应数据
- 2.将数据传递给EJS引擎,并完整的返回
HTML或者数据
- 3.将
HTML或者数据
响应回客户端
- model:
模型层
->处理数据相关的增删改查
的逻辑- 数据模型的操作、数据模型的定义
- 1.根据控制器层的要求,对数据库内的数据进行
增删改查
- 2.并返回控制器层需要的数据
- views:
视图层
(模板专门写在模板引擎里边去)- 封装HTML并且提供动态嵌入数据的功能
图示
localhost:8080 ----> Router -----> controllers ---> models
(index.ejs) /执行函数 indexView 对数据进行处理(返回要的数据)
data进入ejs模板 <---data---|
\|
EJS引擎注入数据
\|
得到html字符串 <---------------------------- 响应注入数据完整的HTML
\|
浏览器解析并渲染DOM
复用性强,而且职责分工明确