json-server 使用具体步骤

前言

json-server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源,用它快速的搭建一个 web 服务器,总而言之,前端可以自己在本地模拟一个服务器接口,开发前期做到自给自足。
如需这份json文件用来模拟,请在结尾处自取,也请给作者点个赞,以资鼓励,谢谢!
若是我的文档尚不能解决你的问题,请移步 json-server的包管理库找寻答案

使用步骤

1. 全局安装 json-server

// window
npm install -g json-server
// 如果是 mac 端,记得加 sudo 权限 输入密码
sudo npm install -g  json-server

2. 在项目创建一个 db.json 文件

db.json文件截图

3. 在终端 db.json 同级文件夹中,开始用 json-server 监测 db.json 文件,端口号可自改

json-server --watch db.json --port 8000

4. 开始在项目中使用请求访问数据, 具体访问大致都分为这几种

    // 取数据
    axios.get('http://localhost:8000/posts/1').then(res => {
      console.log(res.data)
    })
    // 增数据
    axios.post('http://localhost:8000/posts', {
      title: '士大夫精神的',
      author: '苏,吗,'
    }).then(res => {
      console.log(res.data)
    })
    // 改数据 (新数据直接替换旧数据,会造成原有数据缺失)
    axios.put('http://localhost:8000/posts/1', {
      title: '我是第一位'
    }).then(res => {
      console.log(res)
    })
    // 补丁更新 patch
    axios.patch('http://localhost:8000/posts/2', {
      title: 'fs'
    }).then(res=> {
      console.log(res.data)
    })
    // 删除 
    axios.delete('http://localhost:8000/posts/1').then(res => {
      console.log(res.data)
    })
    // 表关联 _embed 向下找 另一个表的表名
    axios.get('http://localhost:8000/posts?_embed=comments').then(res => {
      console.log(res.data)
    })
    // 表关联 _expand 下上找 关联表名的单数形式
    axios.get('http://localhost:8000/comments?_expand=post').then(res => {
      console.log(res.data)
    })
    // _en 是 json-server 独有的筛选字段的方式 例如 auditState_ne=0 表示 auditState 不等于0的 同理, _lte 是小于, _gte 是大于
    axios.get(`http://localhost:8000/news?auditState_ne=0&publishState_lte=1&author=${username}&_expand=category`).then(res => {
      console.log(res.data)
    })
    // 用户浏览最多:发布的文章_sort按照view字段进行倒序_order排序_limit只拿前几条
    axios.get(`http://localhost:8000/news?publishState=2&_expand=category&_sort=view&_order=desc&_limit=5`).then(res => {
      console.log(res.data)
    })

具体步骤已完成,下面这个是我的模拟数据 db.json 文件(这是一个后台管理接口数据库,有权限 rights表,权限子级 children表,有角色 roles 表, 有用户 users 表,有区域 regions 表,有分类 categories 表,有新闻 news 表)

{
  "rights": [
    {
      "id": 1,
      "title": "首页",
      "key": "/home",
      "pagepermisson": 1,
      "grade": 1
    },
    {
      "id": 2,
      "title": "用户管理",
      "key": "/user-manage",
      "pagepermisson": 1,
      "grade": 1
    },
    {
      "id": 7,
      "title": "权限管理",
      "key": "/right-manage",
      "pagepermisson": 1,
      "grade": 1
    },
    {
      "id": 14,
      "title": "新闻管理",
      "key": "/news-manage",
      "pagepermisson": 1,
      "grade": 1
    },
    {
      "id": 21,
      "title": "审核管理",
      "key": "/audit-manage",
      "pagepermisson": 1,
      "grade": 1
    },
    {
      "id": 24,
      "title": "发布管理",
      "key": "/publish-manage",
      "pagepermisson": 1,
      "grade": 1
    }
  ],
  "children": [
    {
      "id": 3,
      "title": "添加用户",
      "rightId": 2,
      "key": "/user-manage/add",
      "grade": 2
    },
    {
      "id": 4,
      "title": "删除用户",
      "rightId": 2,
      "key": "/user-manage/delete",
      "grade": 2
    },
    {
      "id": 3,
      "title": "修改用户",
      "rightId": 2,
      "key": "/user-manage/update",
      "grade": 2
    },
    {
      "id": 6,
      "title": "用户列表",
      "rightId": 2,
      "key": "/user-manage/list",
      "pagepermisson": 1,
      "grade": 2
    },
    {
      "id": 8,
      "title": "角色列表",
      "rightId": 7,
      "key": "/right-manage/role/list",
      "pagepermisson": 1,
      "grade": 2
    },
    {
      "id": 9,
      "title": "权限列表",
      "rightId": 7,
      "key": "/right-manage/right/list",
      "pagepermisson": 1,
      "grade": 2
    },
    {
      "id": 10,
      "title": "修改角色",
      "rightId": 7,
      "key": "/right-manage/role/update",
      "grade": 2
    },
    {
      "id": 11,
      "title": "删除角色",
      "rightId": 7,
      "key": "/right-manage/role/delete",
      "grade": 2
    },
    {
      "id": 12,
      "title": "修改权限",
      "rightId": 7,
      "key": "/right-manage/right/update",
      "grade": 2
    },
    {
      "id": 13,
      "title": "删除权限",
      "rightId": 7,
      "key": "/right-manage/right/delete",
      "grade": 2
    },
    {
      "id": 15,
      "title": "新闻列表",
      "rightId": 14,
      "key": "/news-manage/list",
      "grade": 2
    },
    {
      "id": 16,
      "title": "撰写新闻",
      "rightId": 14,
      "key": "/news-manage/add",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 17,
      "title": "新闻更新",
      "rightId": 14,
      "key": "/news-manage/update/:id",
      "grade": 2,
      "routepermisson": 1
    },
    {
      "id": 18,
      "title": "新闻预览",
      "rightId": 14,
      "key": "/news-manage/preview/:id",
      "grade": 2,
      "routepermisson": 1
    },
    {
      "id": 19,
      "title": "草稿箱",
      "rightId": 14,
      "key": "/news-manage/draft",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 20,
      "title": "新闻分类",
      "rightId": 14,
      "key": "/news-manage/category",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 22,
      "title": "审核新闻",
      "rightId": 21,
      "key": "/audit-manage/audit",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 23,
      "title": "审核列表",
      "rightId": 21,
      "key": "/audit-manage/list",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 25,
      "title": "待发布",
      "rightId": 24,
      "key": "/publish-manage/unpublished",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 26,
      "title": "已发布",
      "rightId": 24,
      "key": "/publish-manage/published",
      "grade": 2,
      "pagepermisson": 1
    },
    {
      "id": 27,
      "title": "已下线",
      "rightId": 24,
      "key": "/publish-manage/sunset",
      "grade": 2,
      "pagepermisson": 1
    }
  ],
  "roles": [
    {
      "id": 1,
      "roleName": "超级管理员",
      "roleType": 1,
      "rights": [
        "/user-manage",
        "/user-manage/add",
        "/user-manage/delete",
        "/user-manage/update",
        "/user-manage/list",
        "/right-manage",
        "/right-manage/role/list",
        "/right-manage/right/list",
        "/right-manage/role/update",
        "/right-manage/role/delete",
        "/right-manage/right/update",
        "/right-manage/right/delete",
        "/news-manage",
        "/news-manage/list",
        "/news-manage/add",
        "/news-manage/update/:id",
        "/news-manage/preview/:id",
        "/news-manage/draft",
        "/news-manage/category",
        "/audit-manage",
        "/audit-manage/audit",
        "/audit-manage/list",
        "/publish-manage",
        "/publish-manage/unpublished",
        "/publish-manage/published",
        "/publish-manage/sunset",
        "/home"
      ]
    },
    {
      "id": 2,
      "roleName": "区域管理员",
      "roleType": 2,
      "rights": [
        "/home",
        "/user-manage",
        "/user-manage/add",
        "/user-manage/delete",
        "/user-manage/update",
        "/user-manage/list",
        "/news-manage",
        "/news-manage/list",
        "/news-manage/add",
        "/news-manage/update/:id",
        "/news-manage/preview/:id",
        "/news-manage/draft",
        "/news-manage/category",
        "/audit-manage",
        "/audit-manage/audit",
        "/audit-manage/list",
        "/publish-manage",
        "/publish-manage/unpublished",
        "/publish-manage/published",
        "/publish-manage/sunset"
      ]
    },
    {
      "id": 3,
      "roleName": "区域编辑",
      "roleType": 3,
      "rights": [
        "/home",
        "/news-manage",
        "/news-manage/list",
        "/news-manage/add",
        "/news-manage/update/:id",
        "/news-manage/preview/:id",
        "/news-manage/draft",
        "/audit-manage",
        "/audit-manage/list",
        "/publish-manage",
        "/publish-manage/unpublished",
        "/publish-manage/published",
        "/publish-manage/sunset"
      ]
    }
  ],
  "users": [
    {
      "id": 1,
      "username": "admin",
      "password": 123456,
      "roleState": true,
      "default": true,
      "region": "",
      "roleId": 1
    },
    {
      "id": 2,
      "username": "铁锤",
      "password": 123,
      "roleState": true,
      "default": false,
      "region": "亚洲",
      "roleId": 2,
      "pagepermisson": 1
    },
    {
      "id": 3,
      "username": "钢蛋",
      "password": 123,
      "roleState": true,
      "default": false,
      "region": "南极洲",
      "roleId": 3
    },
    {
      "id": 4,
      "username": "诸葛山珍",
      "password": 123,
      "roleState": true,
      "default": false,
      "region": "",
      "roleId": 1
    },
    {
      "id": 5,
      "username": "西门吹灯",
      "password": 123,
      "roleState": true,
      "default": false,
      "region": "南极洲",
      "roleId": 2
    },
    {
      "username": "summer",
      "password": "123",
      "region": "",
      "roleId": 1,
      "roleState": true,
      "default": false,
      "id": 6
    }
  ],
  "regions": [
    {
      "id": 1,
      "title": "亚洲",
      "value": "亚洲"
    },
    {
      "id": 2,
      "title": "欧洲",
      "value": "欧洲"
    },
    {
      "id": 3,
      "title": "北美洲",
      "value": "北美洲"
    },
    {
      "id": 4,
      "title": "南美洲",
      "value": "南美洲"
    },
    {
      "id": 5,
      "title": "非洲",
      "value": "非洲"
    },
    {
      "id": 6,
      "title": "大洋洲",
      "value": "大洋洲"
    },
    {
      "id": 7,
      "title": "南极洲",
      "value": "南极洲"
    }
  ],
  "categories": [
    {
      "id": 1,
      "title": "时事新闻",
      "value": "时事新闻"
    },
    {
      "id": 2,
      "title": "环球经济",
      "value": "环球经济"
    },
    {
      "id": 3,
      "title": "科学技术",
      "value": "科学技术"
    },
    {
      "id": 4,
      "title": "军事世界",
      "value": "军事世界"
    },
    {
      "id": 5,
      "title": "世界体育",
      "value": "世界体育"
    },
    {
      "id": 6,
      "title": "生活理财",
      "value": "生活理财"
    }
  ],
  "news": [
    {
      "title": "测试",
      "categoryId": 1,
      "content": "<p>测试</p>\n",
      "region": "全球",
      "author": "admin",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 161577743864,
      "star": 1000,
      "view": 2010,
      "id": 1,
      "publishTime": 1615778496314
    },
    {
      "title": "士大夫",
      "categoryId": 1,
      "content": "<p style=\"text-align:center;\">大师傅</p>\n<ul>\n<li><span style=\"background-color: rgb(44,130,201);\">dsfknashdfs</span></li>\n<li><span style=\"background-color: rgb(44,130,201);\">dsfjhasgkal</span></li>\n</ul>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 3,
      "createTime": 1665732803067,
      "star": 0,
      "view": 0,
      "id": 2,
      "publishTime": 1665846232550
    },
    {
      "title": "收到就回复",
      "categoryId": 5,
      "content": "<p>sdfsadfsdfasd</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665832939282,
      "star": 2,
      "view": 5,
      "id": 3,
      "publishTime": 1665900147916
    },
    {
      "title": "士大夫11111",
      "categoryId": 1,
      "content": "<p>ewrwqerwerq</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665839712217,
      "star": 0,
      "view": 0,
      "id": 4,
      "publishTime": 1665978794323
    },
    {
      "title": "是淡粉色的方式",
      "categoryId": 1,
      "content": "<p>淡粉色的 v</p>\n",
      "region": "亚洲",
      "author": "铁锤",
      "roleId": 2,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665847372657,
      "star": 0,
      "view": 0,
      "id": 5,
      "publishTime": 1665984841630
    },
    {
      "title": "是的",
      "categoryId": 1,
      "content": "<p>当时发生的方式地方</p>\n",
      "region": "南极洲",
      "author": "钢蛋",
      "roleId": 3,
      "auditState": 2,
      "publishState": 1,
      "createTime": 1665847644925,
      "star": 0,
      "view": 0,
      "id": 6
    },
    {
      "title": "dfsd",
      "categoryId": 3,
      "content": "<p>dfssadfasd</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665978842194,
      "star": 0,
      "view": 0,
      "id": 7,
      "publishTime": 1665978848362
    },
    {
      "title": "sd",
      "categoryId": 1,
      "content": "<p>rgdv&nbsp;</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665979485659,
      "star": 0,
      "view": 0,
      "id": 8,
      "publishTime": 1665979492659
    },
    {
      "title": "士大夫",
      "categoryId": 2,
      "content": "<p>ewrwe</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665982559799,
      "star": 0,
      "view": 0,
      "id": 9,
      "publishTime": 1665982564848
    },
    {
      "title": "士大夫",
      "categoryId": 5,
      "content": "<p>ewrwe</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665982579600,
      "star": 0,
      "view": 2,
      "id": 10,
      "publishTime": 1665982584210
    },
    {
      "title": "df",
      "categoryId": 6,
      "content": "<p>erwrwerwer</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665982599056,
      "star": 0,
      "view": 0,
      "id": 11,
      "publishTime": 1665982603977
    },
    {
      "title": "sd",
      "categoryId": 4,
      "content": "<p>fdsv&nbsp;</p>\n",
      "region": "全球",
      "author": "summer",
      "roleId": 1,
      "auditState": 2,
      "publishState": 2,
      "createTime": 1665982644959,
      "star": 0,
      "view": 0,
      "id": 12,
      "publishTime": 1665982649000
    }
  ],
  "profile": {
    "name": "typicode"
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容