一.MVC
项目架构,项目分层,不同的层的职责不同。
M:model,模型(只是数据处理)
业务逻辑处理,更多体现的是数据库的增删改查
V:view:视图(显示)
views文件夹下的文件。完成显示的格式。使用ejs模板,jade模板
C:controller,控制器。(控制的就是某个功能的业务流程)
routers文件夹下的文件。
根据业务流程,调用不同的模块完成对应的功能。
二.web开发中的架构:
1.耦合架构
2.半分离架构
web的工作流程:
1、打开web,加载静态资源,如HTML,CSS,JS等;
2、发起一个Ajax请求再到服务端请求数据,同时展示loading;3、得到JSON格式的数据后再根据逻辑选择模板渲染出DOM字符串;
4、将DOM字符串插入HTML页面中渲染出DOM结构;
3.分离架构
前端渲染:vue脚手架的项目是前后端分离,但是用的是前端的渲染
后端渲染:如果要使用后端渲染,那么就需要使用ejs。许多小童鞋是不是初次听说呀~
web的工作流程:
1)浏览器请求服务器端的NodeJS;
2)NodeJS再发起HTTP去请求JSP;
3)JSP的API输出JSON给NodeJS;
4)NodeJS收到JSON后再渲染出HTML页面;
5)NodeJS直接将HTML页面发送给浏览器;
这样,浏览器得到的就是普通的HTML页面,而不用再发Ajax去请求服务器了。
三.前后端分离架构的流程和职责
三.restful规范
1.概念:
RESTful (资源数据接口规范) 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。
前端设备层出不穷(手机、平板、桌面电脑、其他专用设备…)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行。RESTful API是目前比较成熟的API设计理论。要搞清楚restful规范,必须先了解REST。REST强调HTTP应当以资源为中心,并且规范了资源URI的风格;规范了HTTP请求动作(PUT,POST等)的使用,具有对应的语义。
如:
员工信息的uri :http://www.qianfeng.com/employees
书籍信息的uri :http://www.qianfeng.com/books
编号为01001的书籍信息的uri :http://www.qianfeng.com/books/01001
即:不同的资源(信息)是不同的uri
2.优点:
- 遵循REST规范的Web应用将会获得下面好处:
- URL具有很强可读性的,
- 具有自描述性;
- 资源描述与视图的松耦合
- 可提供OpenAPI,
- 便于第三方系统集成,提高互操作性;
- 如果提供无状态的服务接口,可提高应用的水平扩展性;
3.规范
URI
URI(Uniform Resource Identifiers) 统一资源标示符,能够统一标识一个资源的符号都是URI
URL(Uniform Resource Locator) 统一资源定位符,是URI的一种体现形式。
在restfulAPI的规范里,要让一个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是 URI(Uniform Resource Identifier),
URI的格式定义如下:
URI = scheme "://" 域名:端口号 "/" path [ "?" query ] [ "#" fragment ]
-
协议: API与用户的通信协议,总是使用HTTPs协议。
-
域名: 应该尽量将API部署在专用域名之下,如:https://api.example.com。(如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下,https://example.org/api/)
-
版本号:https://api.qianfeng.com/v1/
-
HTTP动词:
-
GET(SELECT):从服务器取出资源(一项或多项)。
-
POST(CREATE):在服务器新建一个资源。
-
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
-
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)
-
DELETE(DELETE):从服务器删除资源。
-
路径(Endpoint):
路径又称"终点"(endpoint),表示API的具体网址
如:https://api.qianfeng.com/v1/GET/employees 获取版本1里的所有employess的信息
如:https://api.qianfeng.com/v1/GET/employees/01001 获取版本1里的id为01001的信息
如:https://api.qianfeng.com/v1/GET/employees?id=01001 获取版本1里的编号为01001的信息
如:https://api.qianfeng.com/v1/GET/employees?name
总结一下: restful规范,最终核心规定的是由“动词”和“名词”构成的需求,这个需求就体现在URI上。
即:要求在URI上能够体现出需求
如: https://api.qianfeng.com/v1/GET/employees 表示 获取 员工信息如: https://api.qianfeng.com/v1/POST/employees 表示 添加 员工信息