使用json-server简单完成CRUD模拟后台数据的方法


Posted in Javascript onJuly 12, 2018

在开发中,后端的接口往往是较晚出来的,但是有时候我们必须给前端页面一些虚假的数据去开发,这个时候一些mock工具就很有必要了,最终我选择了 json server 工具,因为它足够简单,而且也能和你们所熟知的Mock.js 配合模拟数据(思考:mockjs是可以作为一个独立的 mock server 存在,但为什么不单独用它?)。

安装

npm install json-server -g

安装完成后可以用 json-server -h 命令检查是否安装成功。

json-server [options] <source>

Options:
 --config, -c    指定 config 文件         [默认: "json-server.json"]
 --port, -p     设置端口号                  [default: 3000]
 --host, -H     设置主机                  [默认: "0.0.0.0"]
 --watch, -w    监控文件                      [boolean]
 --routes, -r    指定路由文件
 --static, -s    设置静态文件
 --read-only, --ro 只允许 GET 请求                  [boolean]
 --no-cors, --nc  禁止跨域资源共享                  [boolean]
 --no-gzip, --ng  禁止GZIP                     [boolean]
 --snapshots, -S  设置快照目录                   [默认: "."]
 --delay, -d    设置反馈延时 (ms)
 --id, -i      设置数据的id属性 (e.g. _id)           [默认: "id"]
 --quiet, -q    不输出日志信息                   [boolean]
 --help, -h     显示帮助信息                    [boolean]
 --version, -v   显示版本号                     [boolean]

使用

创建个 Mock 目录,在该目录下创建一个json文件, db.json

{
 "list": [
 {
  "name": "游魂博客",
  "link": "www.iyouhun.com",
  "id": 1
 },
 {
  "id": 2,
  "name": "买卖淘",
  "link": "www.868432.net"
 },
 {
  "id": 3,
  "name": "游魂全自动网页制作系统",
  "link": "www.youhun.wang"
 },
 {
  "id": 4,
  "name": "游魂博客",
  "link": "www.iyouhun.com"
 },
 {
  "id": 5,
  "name": "买卖淘",
  "link": "www.868432.net"
 },
 {
  "id": 6,
  "name": "游魂全自动网页制作系统",
  "link": "www.youhun.wang"
 }]
}

在Mock目录下执行

json-server db.json

打开浏览器, http://localhost:3000 ,查看页面。可以试着直接访问他索引出来的资源 如果要监控json文件的变化,启动的时候加上参数 --watch 或者 -w 。

支持的方法

你可以使用任何 HTTP method

如:

  • GET /list 获取列表
  • GET /list/1 获取id=1的数据
  • POST /list 创建一个项目
  • PUT /list/1 更新一个id为1的数据
  • PATCH /list/1 部分更新id为1的数据
  • DELETE /list/1 删除id为1的数据

注意:

  • 当你发送POST,PUT,PATCH 或者 DELETE请求时,变化会自动安全的保存到你的db.json文件中。
  • 你的请求体body应该是封闭对象。比如{"name": "Foobar"}
  • id不是必须的,在PUT或者PATCH方法中,任何的id值将会被忽略。
  • 在POST请求中,id是可以被添加的,如果该值没有没占用,会使用该值,否则自动生成。
  • POST,PUT或者PATCH请求应该包含一个Content-Type:application/json的header,来确保在请求body中使用json。

操作数据

这里请求数据我全部使用postman工具,最后一条删除我使用jquery的$.ajax  举例

查询

GET请求:http://localhost:3000/list

使用json-server简单完成CRUD模拟后台数据的方法

新增

POST请求:http://localhost:3000/list

参数:{"name":"游魂博客","link":www.iyouhun.com}

使用json-server简单完成CRUD模拟后台数据的方法

请求成功后会看到返回的就是新增成功的友链信息

修改

PUT请求:http://localhost:3000/list/1  修改id为1的友链信息

参数:{"name":"哈哈哈哈哈客","link":"www"}

使用json-server简单完成CRUD模拟后台数据的方法

删除

DELETE请求:http://localhost:3000/list/1 删除id为1的友链信息

$.ajax({
  type: 'DELETE',
  url: 'http://localhost:3000/list/1',
  success: function (data) {
    console.log(data)
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js DOM 元素ID就是全局变量
Sep 20 Javascript
Jquery全选与反选点击执行一次的解决方案
Aug 14 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
Aug 03 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
微信小程序 video组件详解
Oct 25 Javascript
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
Koa日志中间件封装开发详解
Mar 09 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
JS如何把字符串转换成json
Feb 21 Javascript
教你如何用node连接redis的示例代码
Jul 12 #Javascript
angular 内存溢出的问题解决
Jul 12 #Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 #Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
Jul 12 #Javascript
vue中如何实现pdf文件预览的方法
Jul 12 #Javascript
js+css实现红包雨效果
Jul 12 #Javascript
基于vue cli 通过命令行传参实现多环境配置
Jul 12 #Javascript
You might like
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php实现头像上传预览功能
2017/04/27 PHP
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
python实现手机通讯录搜索功能
2018/02/22 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
Python高级property属性用法实例分析
2019/11/19 Python
django正续或者倒序查库实例
2020/05/19 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
东方电视购物:东方CJ
2016/10/12 全球购物
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
家长会演讲稿范文
2014/01/10 职场文书
英语教学随笔感言
2014/02/20 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL