mock数据和数据交互

一、mock数据:json-server

json-server:是用来模拟后端的接口的。

mock这词本意是虚拟,模拟的意思。mock server工具,通俗来说,就是模拟服务端接口数据,一般用在前后端分离后,前端人员可以不依赖后端的API开发,而在本地搭建一个JSON服务,自己产生测试数据。即:今天要讲的json-server就是个存储json数据的server ​ json-server 支持CORS和JSONP跨域请求。

1、创建文件夹(作为mock数据的文件夹)
2、初始化项目
//在文件夹里,执行:
npm init -y
3、安装json-server
npm i json-server  -D(就是--save-dev)
4、打开项目编写数据

在项目根目录下创建db.json,并写上合法的json数据。

属性名必须用双引号括起来,属性值:要么是json对象,要么是数组,如下:

{
  "inc": {
    "count": 3
  },
  "vips": [
    {
      "username": "刘一",
      "userpass": "123123",
      "id": 2
    },
    {
      "username": "陈二",
      "userpass": "123123",
      "id": 3
    },
    {
      "username": "张三",
      "userpass": "123123",
      "id": 4
    },
    {
      "username": "李四",
      "userpass": "123123",
      "id": 5
    },
    {
      "username": "王五",
      "userpass": "123223",
      "id": 6
    },
    {
      "username": "赵六",
      "userpass": "123112",
      "id": 7
    }
  ],
  "comments": [
    {
      "bookId": "868711",
      "id": "001",
      "username": "孙七",
      "content": "三国演义很有内涵"
    },
    {
      "bookId": "868711",
      "id": "002",
      "username": "孙七",
      "content": "三国演义很有内涵,孙七很喜欢"
    }
  ],      
  "books":[
    {
      "id": "868711",
      "name": "三国演义",
      "author": "罗贯中",
      "price": 51.2,
      "img": "/imgs/1.jpg",
      "type": "hot"
    },
    {
      "id": "868712",
      "name": "水浒传",
      "author": "施耐庵",
      "price": 51.5,
      "img": "/imgs/2.jpg",
      "type": "hot"
    },
    {
      "id": "868713",
      "name": "红楼梦",
      "author": "曹雪芹",
      "price": 51.8,
      "img": "/imgs/3.jpg",
      "type": "hot"
    },
    {
      "id": "868714",
      "name": "西游记",
      "author": "吴承恩",
      "price": 51.8,
      "img": "/imgs/4.jpg",
      "type": "hot"
    },
    {
      "id": "868715",
      "name": "大学",
      "author": "曾参",
      "price": 52.8,
      "img": "/imgs/img1.jpg",
      "type": "new"
    },
    {
      "id": "868716",
      "name": "中庸",
      "author": "子思",
      "price": 52.9,
      "img": "/imgs/img2.jpg",
      "type": "new"
    },
    {
      "id": "868717",
      "name": "论语",
      "author": "孔子及其再传弟子",
      "price": 53.8,
      "img": "/imgs/img3.jpg",
      "type": "new"
    },
    {
      "id": "868718",
      "name": "孟子",
      "author": "孟子及其弟子",
      "price": 54.8,
      "img": "/imgs/img4.jpg",
      "type": "new"
    }
  ],
  "readers": [
    {
      "id": "008",
      "name": "周八",
      "age": 35
    },
    {
      "id": "009",
      "name": "吴九",
      "age": 32
    },
    {
      "id": "010",
      "name": "郑十",
      "age": 29
    }
  ]
}

注意:每个键后面的值,只能是对象或者数组。

5、启动配置

在package.json下增加如下代码:

"scripts": {
    + "server":"json-server db.json"
},
6、运行

在命令行运行: npm run server

7、JSON-SERVER的各种请求

可以使用postman等工具测试以下请求。

(1)、GET 请求数据列表

获取所有的书籍

localhost:3000/books

(2)、GET 请求指定ID的数据

localhost:3000/books/868711

返回的是json对象。

(3)、GET 请求指定字段值的数据

localhost:3000/books?id=868711&name=三国演义

获取id为868711和name为三国演义的书籍,返回结果是数组(就算只有一条数据)

(4)、GET 数据分页

localhost:3000/bookS?_page=1&_limit=2

_page表示页码

_limit表示每页的条数

 (5)、GET 数据排序

localhost:3000/bookS?_sort=price&_order=asc
- asc 升序 desc 降序

(6)、GET 区间查询

localhost:3000/bookS?price_gte=30&price_lte=40

查找price的值大于等于30 而 小于等于40的记录

 (7)、GET 搜索(模糊查询)

搜索所有属性值里包括“三”的记录,模糊查询。在所有属性中进行查询。

localhost:3000/bookS?q=三

 (8)、GET 关联查询

http://localhost:3000/books/868711?_embed=comments

查询books中id为868711,并把comments中 bookId为868711的数据关联出来,结果是:

 {
      "id": "868711",
      "name": "三国演义",
      "author": "罗贯中",
      "price": 51.2,
      "img": "/imgs/1.jpg",
      "type": "hot"
      "comments": [
         {
               "bookId": "868711",
               "id": "001",
               "username": "孙七",
               "content": "三国演义很有内涵"
         },
         {
               "bookId": "868711",
               "id": "002",
               "username": "孙七02",
               "content": "三国演义很有内涵,孙七很喜欢"
         }
      ]
  }

(9)、POST :添加数据

请求方式为:POST

①localhost:3000/books

②设置请求头:

                       ajax里:Headers:{ Content-Type:'application/json' }

                       postman工具里:在body -> raw-->json

(10)、delete 删除数据

请求方式为:DELETE

(11)、patch 更新数据

请求方式为:PATCH

(12)、put 更新数据

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值