前端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',
    })
相关推荐
ywf12151 小时前
前端的dist包放到后端springboot项目下一起打包
前端·spring boot·后端
恋猫de小郭1 小时前
2026,Android Compose 终于支持 Hot Reload 了,但是收费
android·前端·flutter
hpoenixf7 小时前
2026 年前端面试问什么
前端·面试
还是大剑师兰特7 小时前
Vue3 中的 defineExpose 完全指南
前端·javascript·vue.js
qqxhb7 小时前
11|结构化输出:为什么 JSON 能让系统更稳定
json·ai编程·结构化·规范模板
泯泷8 小时前
阶段一:从 0 看懂 JSVMP 架构,先在脑子里搭出一台最小 JSVM
前端·javascript·架构
hjxu20168 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
mengchanmian8 小时前
前端node常用配置
前端
sinat_255487818 小时前
读者、作家 Java集合学习笔记
java·笔记·学习
华洛8 小时前
利好打工人,openclaw不是企业提效工具,而是个人助理
前端·javascript·产品经理