前端mock假数据工具JSON Server使用笔记

mock假数据工具JSON Server使用笔记

  • 安装
    只在开发环境使用
css 复制代码
npm install -D json-server
  • 建假数据文件,在src的同级建mock文件夹,文件夹里新建文件db.json

    db.json文件内容,users和posts是访问的接口名字
javascript 复制代码
{
  "users": [
    {
      "id": "1",
      "name": "Alice",
      "value": 1
    },
    {
      "id": "2",
      "name": "Bob",
      "value": 2
    }
  ],
  "posts": [
    {
      "id": "1",
      "name": "张三",
      "value": 1
    }
  ]
}
  • 配置package.json
javascript 复制代码
"mock": "json-server --watch mock/db.json --port 3004"
  • 启动
    可以在vscode开两个终端,一个启应用,一个启假数据
    启动假数据命令
javascript 复制代码
npm run mock

启动成功终端显示

  • 配置vite.config.js
javascript 复制代码
      server: {
            port: '3000',
            proxy: {
                '/api': {
                    target: 'http://localhost:3004',
                    changeOrigin: true,
                    rewrite: (path) => path.replace(/^\/api/, ''),
                },
            }
        },
  • 调用接口

    按常用的增删改查

javascript 复制代码
    const res = await uni.request({
      url: '/api/posts',
      method: 'post',
      data: JSON.stringify({
        name: '新人',
        value:2
      }),
    })

结果展示

javascript 复制代码
  "posts": [
    {
      "id": "1",
      "name": "张三",
      "value": 1
    },
    {
      "id": "a4f8",
      "name": "新人",
      "value": 2
    }
  ]

  • 删除请求方法设置delete,加上id
javascript 复制代码
    const res1 = await uni.request({
      url: '/api/posts/1',
      method: 'delete',
    })

  • (1)属性全覆盖put
    把id='2'的这条数据全替换
javascript 复制代码
   const res = await uni.request({
      url: '/api/posts/2',
      method: 'put',
      data: JSON.stringify({
        name: '新人3',
        value:3
      }),
    })

(2)修改其中的某个属性用patch方法

比如id='2'修改name

javascript 复制代码
  const res = await uni.request({
      url: '/api/posts/2',
      method: 'patch',
      data: JSON.stringify({
        name: 'patch修改',
      }),
    })

  • (1)根据id查询
    查id='2'的
javascript 复制代码
   const res3 = await uni.request({
      url: '/api/users/2',
      method: 'get',
    })

(2)根据条件查

查name=Alice并且value=3

javascript 复制代码
  const res3 = await uni.request({
      url: "/api/users?name=Alice&value=3",
      method: 'get',
    })

(3)分页

用切片实现,_start、_end

javascript 复制代码
 const pageSize = 1;
  const limit = 3;
  const start = (pageSize - 1) * limit
  const end = start + limit
  try {
    const res3 = await uni.request({
      url: `/api/users?_start= ${start}&_end= ${end}`,
      method: 'get',
    })
相关推荐
东方-教育技术博主24 分钟前
论文全文翻译_通过VR课堂适应性反馈提升职前教师注意能力
json·vr
一孤程36 分钟前
Airtest自动化测试第五篇:小程序与Web测试——跨平台自动化全覆盖
前端·自动化测试·小程序·自动化·测试·airtest
IT_陈寒37 分钟前
SpringBoot自动配置不是你以为的那样的智能
前端·人工智能·后端
risc1234561 小时前
肌肉收缩会释放大量的肌细胞因子能抑制体内炎症因子
笔记
yume_sibai2 小时前
大屏数据可视化 - 边框红绿呼吸灯实现详解
前端·信息可视化·typescript
Hyyy2 小时前
很多Desktop都在上的Computer Use是什么
前端·llm
慢功夫2 小时前
开篇:VS Code 为什么不是一个普通 React App
前端·visual studio code
既然如此,那就开摆2 小时前
精读笔记06_CoCa
笔记
你挚爱的强哥2 小时前
Vue2 实现 1.5s 十连击监听(连续点击若干次),封装通用可复用点击检测工具,不用 data!Vue 封装通用连击监听方法,支持自定义时长与点击次数
前端·javascript·vue.js
疯狂打码的少年3 小时前
【软件工程】软件开发模型:瀑布模型(特点与适用场景)
笔记·软件工程