一、Express框架


1. 在服务器端进行跨域设置:安装、配置cors模块

2. 创建自己的路由文件:路由中间件 —— 接口文件(API)

3. 前后端数据的传输:

 (1)前端数据如何发送给后台:

  • get方式:数据绑定在url一起发送给后台
  • post方式:数据绑定在body上发送给客户端

(2)后端接收前端的数据:

  • 对于get方式:req.query.参数名
  • 对于post方式:req.body.参数名

(3)后端向前端响应数据:

  • res.send(数据):字符串或对象
  • res.json(数据):json格式的字符串

 4. 在项目中配置自定义的路由文件:app.js中配置

  • 导入自定义的路由文件
  • 配置路由路径:http://localhost:端口号 + 在app.js配置的路径 + 接口中给定的路径

二、案例


1. 客户端:注册 —-> 登录 —-> 主页

2. 服务器端接口:

注册接口:接收客户端的数据,将数据保存到文件中

登录接口:读取文件中的数据、对数据进行处理、判断

主页接口:向客户端响应数据

三、接口测试

1. ApiPost:

(1)新建目录:目录名建议是项目名称

2. postman:

3. 测试什么:

(1)接口能否正常访问

(2)请求数据、响应数据是否正常

4. 生成接口文档

restful api 最佳实践 过滤 分页_restful

四、RESTful风格

1. REST风格:是一个基于web标准的架构。使用的是http协议。http协议的特点 —- 无状态协议

2. 一个接口就是一个资源,这些资源的获取是通过http的标准方法来实现的

3. 获取资源必须有:协议、主机名(域名)、端口号、资源地址

4. 数据的传输格式:json、xml

强调的问题

1. 常见的get请求:

(1)通过浏览器地址发起的请求都是get方式

(2)在html页面中使用a标签发送的请求也是get方式

(3)location.href发送的请求也是get方式

2. 创建Express项目时,如果修改了端口号,建议先运行项目看端口号是否可用

五、数据库:存放数据的仓库

1. 关系型数据库:用二维表格存放数据。有行、列之分。一个关系就是一张表格,一个数据库中有若干个表格。

(1)MySQL、Oracle —- 甲骨文公司

(2)DB2、ACCESS

restful api 最佳实践 过滤 分页_数据_02

以文档的方式管理数据

MongoDB、sqlite

3. MySQL数据库:

(1)创建数据库:

(2)创建表:

          varchar:字符串

         int:整型

          主键:唯一标识表格中一行记录的列称为主键列(值不能重复、不能为空)只有在MySQL数据库中主键为int型时才会自增

4. SQL:结构化查询语言(Structure Query Language),是关系型数据库的标准查询语言

    开头双-加空格为注释

(1)查询语句:

    select 列名1,列名2,… from 表名 [ where 条件]

    查询student表的所有记录:* 是统配符代表所有列

-- 查询student表的所有记录:* 是统配符代表所有列
  select *  from  student; 
  select * from clazz;
    -- 查询student表中id、name、address列
    select id,name,address from student;
    select id,name,address
    from student;
    -- 条件查询:带where子句的查询
    -- 查询所有性别为'男'的记录
    select * from student where sex='男';
    -- 查询所有性别为'男' 并且年龄大于23岁的记录
    select * from student where sex='男' and age > 23;
    -- 查询所有性别为'男' 或年龄大于等于23岁的记录
    select * from student where sex='男' or age >= 23;
    -- 查询年龄在18~22岁之间的记录
    select * from student where age between 18 and 22;
    -- 查询地址是西安的学生信息
    select * from student where address = '西安';
    -- 查询地址是西安、渭南、咸阳的学生信息
    select * from student where address in ('西安','渭南','咸阳');
    -- 查询地址不是西安、渭南、咸阳的学生信息
    select * from student where address not in ('西安','渭南','咸阳');
    -- 模糊查询:使用like关键字,%通配符表示0个或多个字符,_表示1个字符
    -- 查询姓贾的学生记录
    select * from student where name like '贾%';
    -- 查询姓贾、名字两个字的学生记录
    select * from student where name like '贾_';
    -- 查询名字有3个字,最后一个字是'春'的学生记录
    select * from student where name like '__春';

(2)插入语句:向数据表中插入记录

         insert into 表名(列名1,列名2…)values(值1,值2,……)

-- 给student表插入一条记录
    insert into student values('1008','林黛玉','女',18,'镇江');
    -- 给student表的部分列插入数据:id、name、sex
    insert into student(id,name,sex) values('1014','武松','男');

 (3)删除语句:删除表中的记录

          delete from 表名 [where 条件]

-- 删除id为1013的记录
    delete from student where id = '1013';
-- 删除地址为'渭南'的记录
    delete from student where address = '渭南';

 (4)更新语句:更新表中的记录

          update 表名 set 列名1 = 值1,列名2=值2… [where 条件]

-- 更新id为1014的记录的age、address字段
    update student set age=23,address='景阳冈' where id = '1014';

CRUD操作(增、删、改、查)

  • 插入记录:insert into 表名(列名1,…) values(值1…)
  • 删除记录:delete from 表名 [ where 条件 ]
  • 更新记录:update 表名 set 列名1=值1,…… [where 条件]
  • 查询记录:select 列名 from 表名 [where 条件]