位置: IT常识 - 正文

『前端必备』本地数据接口—json-server 详细介绍(入门篇)(前端必会)

编辑:rootadmin
『前端必备』本地数据接口—json-server 详细介绍(入门篇)

目录

前言

 一、Node环境搭建

1-1 简介

1-2 Node.js环境搭建

1-2-1 下载

1-2-2 安装

1-2-3 验证

1-3 npm简介

二、json-server环境搭建

2-1 简介

2-2 安装

2-3 创建数据库

2-4 启动

​编辑

2-5 查看

三、操作数据

3-1 查(get)

3-2 增(post)

3-3 删(delete)

3-4 改(put 和 patch)

前言

推荐整理分享『前端必备』本地数据接口—json-server 详细介绍(入门篇)(前端必会),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端 书,前端必读,前端用啥,前端实用技巧,前端必读,前端必会,前端必备软件,前端基本功,内容如对您有帮助,希望把文章链接给更多的朋友!

Ajax 是前端必学的一个知识点,但刚接触 Ajax 的同学可能会因为没接口测试而烦恼。

本文 入门篇 会花你10分钟解决 没接口测试 这个烦恼,而且不需要你具备后端知识。

虽然有许多线上的免费接口可以测试,但需要自定义接口和数据的时候,还是本地模拟数据比较适合前端开发者。

json-server 需要通过 npm 下载,npm 依赖在 node 中。下面先进行node环境配置

 一、Node环境搭建1-1 简介

        Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的。

        Node.js 具有独特的优势,因为为浏览器编写 JavaScript 的数百万前端开发者现在除了客户端代码之外还可以编写服务器端代码,而无需学习完全不同的语言。

1-2 Node.js环境搭建1-2-1 下载

 官网地址: Node.js 中文网

 .msi 和 .zip 格式区别:

.msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序。.msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。 .zip是一个压缩包,解压之后即可,不需要安装1-2-2 安装

      下载完成后,双击安装包,开始安装,一直点next即可。

1-2-3 验证

       安装完成后,.msi格式的安装包已经将node启动程序添加到系统环境变量path中,查看系统变量验证。

执行命令node -v查看node版本。

最新版的node在安装时同时也安装了npm,执行npm -v查看npm版本。

1-3 npm简介

        npm全称为Node Package Manager,是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。 

        npm的初衷:JavaScript开发人员更容易分享和重用代码。

1-3-1 npm的使用场景:允许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

 如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:

npm install npm -g

使用淘宝镜像的命令:

npm install -g cnpm --registry=https://registry.npm.taobao.org

        npm run是npm run-script的简写,顾名思义就是执行脚本。执行的脚本配置在package.json中的scripts对象。

二、json-server环境搭建2-1 简介

         一个在前端本地运行,可以存储json数据的server。通俗来说,就是模拟服务端接口数据,一般用在前后端分离后,前端人员可以不依赖API开发,而在本地搭建一个JSON服务,自己产生测试数据。

       顾名思义,json-server就是个存储json数据的server~​。

开源地址

主页地址:json-server - npm Github项目地址:https://github.com/typicode/json-server

2-2 安装

  使用npm全局安装json-server:

npm install -g json-server

  可以通过查看版本号,来测试是否安装成功:

json-server -v2-3 创建数据库

json在线编辑器:JSON在线编辑器-懒人工具|www.ab173.com

创建任意一个文件夹,进入到该文件夹里面,创建一个db.json包含一些数据的文件(建议文件名不要出现中文)。

例:

创建 json-server-demo 文件夹,在 json-server-demo 里创建 db.json 文件(这些文件夹和文件名都可以自由命名)。

db.json 文件录入以下数据(数据来自 json-server 官方文档,你也可以使用自己的数据)

{ "posts": [ { "id": 1, "title": "json-server", "author": "typicode" } ], "comments": [ { "id": 1, "body": "some comment", "postId": 1 } ], "profile": { "name": "typicode" }}

对比myserver/db.json文件的数据,可以发现: /db就是整个的db.json数据包,而/posts /comment /profile 分别是db.json里面的子对象。

 所以说,json-server把db.json 根节点的每一个key,当作了一个router。我们可以根据这个规则来编写测试数据。

2-4 启动『前端必备』本地数据接口—json-server 详细介绍(入门篇)(前端必会)

在文件夹下,直接在地址栏cmd,进入终端。执行启动json-server命令。

json-server --watch db.json2-5 查看

在浏览器中输入地址:http://localhost:+端口号/接口名称,即可查看数据。 例如:输入http://localhost:3000/comments

首页和三个接口都可以直接在浏览器访问。

三、操作数据3-1 查(get)

json-server 查询数据需要使用 GET 方法。

上一小节创建了3个接口,我们可以直接在浏览器、postman或者自己写JS代码获取数据。

http://localhost:3000/posts

3-2 增(post)

json-server 新增数据需要使用 POST 方法。

例:给 posts 添加一条新的数据。

http://localhost:3000/posts

这里使用 POSt 方法向 /posts 接口传输数据,/posts 原本的数据结构是包含 id、title、author 三个字段,id 默认是自增主键,不传的话会默认增加。

此时打开 db.json 文件看看,可以发现 posts 里多了一条数据。

需要注意的是:json-server 默认情况下并不会限制你上传的数据格式和类型,所以需要你严格遵循自己设计的数据格式来添加和修改。

3-3 删(delete)

json-server 删除数据需要使用 DELETE 方法。

删除的公式是:

http://localhost:3000/{接口名}/{id}

比如现在要删除刚刚上传的那条数据

{ "title": "leihou", "author": "雷猴", "id": 2}

可以看到刚刚上传的那条数据的 id 为 2

http://localhost:3000/posts/2

此时打开 db.json 就会发现刚刚删除的那条数据已经没了。

需要注意的是: 删除成功 Status 会返回 200;如果删除的数据不存在会返回 404。 

3-4 改(put 和 patch)

修改数据分为2个方法:

put :覆盖patch :更新

公式如下所示:

http://localhost:3000/posts/{id}

3-4-1 覆盖(put)

例:把 id 为 1 的数据改成 { "title": "leihou", "author": "雷猴" }

此时打开 db.json 就可以看到 id 为 1 的数据已经发生变化。

注意:原本的数据包含 title 和 author ,使用 put 时必须把这两个字段都写上,不然会删掉没传的字段。这就是 “覆盖” 的意思。

例如:

此时查看 db.json 会发现数据被覆盖。

3-4 2更新(patch)

先还原一下数据,改成如下图所示:

此时有 title 和 author 字段。

例:使用 patch 方法把 id 为 1 的数据 title 字段的值更改成 hello 。

打开 db.json 文件查看一下,会发现只改了 id 为 1 的 title 值,并没有删掉 author 这个字段的数据。

本文链接地址:https://www.jiuchutong.com/zhishi/298584.html 转载请保留说明!

上一篇:vue项目中常用解决跨域的方法(vue技术解密)

下一篇:快速傅里叶变换及Python代码实现(快速傅里叶变换matlab)

  • 如何让营销本身成为利润来源(怎么样把营销效率提高)

    如何让营销本身成为利润来源(怎么样把营销效率提高)

  • oppowatch2微信怎么打字(oppowatch2微信怎么找联系人)

    oppowatch2微信怎么打字(oppowatch2微信怎么找联系人)

  • 小米10至尊纪念版支持双扬声器吗(小米10至尊纪念版换电池)

    小米10至尊纪念版支持双扬声器吗(小米10至尊纪念版换电池)

  • 红米k30proNFC感应区在哪理(红米k30nfc感应区域)

    红米k30proNFC感应区在哪理(红米k30nfc感应区域)

  • 苹果以旧换新需要先寄手机吗(苹果以旧换新需要什么)

    苹果以旧换新需要先寄手机吗(苹果以旧换新需要什么)

  • 搜索发现怎么删除不了(搜索发现怎么删除不了百度)

    搜索发现怎么删除不了(搜索发现怎么删除不了百度)

  • POS机是什么(0.38pos机是什么)

    POS机是什么(0.38pos机是什么)

  • 闲鱼商品不是上架状态是什么意思(闲鱼商品不是上架状态怎么解决)

    闲鱼商品不是上架状态是什么意思(闲鱼商品不是上架状态怎么解决)

  • 电脑打印需要下载什么软件(电脑打印需要下什么驱动)

    电脑打印需要下载什么软件(电脑打印需要下什么驱动)

  • 荣耀v30什么时候上线(荣耀v30什么时候出的)

    荣耀v30什么时候上线(荣耀v30什么时候出的)

  • 电话拉黑与免打扰区别(无视拉黑打电话)

    电话拉黑与免打扰区别(无视拉黑打电话)

  • 华为p10可以只换外屏吗(华为p10可以只换后盖吗)

    华为p10可以只换外屏吗(华为p10可以只换后盖吗)

  • bacal00是什么型号(bacal00参数)

    bacal00是什么型号(bacal00参数)

  • 拉黑别人电话发信息能收到吗(拉黑别人电话发的短信)

    拉黑别人电话发信息能收到吗(拉黑别人电话发的短信)

  • 华为play是全网通吗(华为play是什么)

    华为play是全网通吗(华为play是什么)

  • 快手私信如何设置自动回复(快手私信如何设置聊天背景)

    快手私信如何设置自动回复(快手私信如何设置聊天背景)

  • oppo手机强行关机在哪(oppo手机强行关机在哪里)

    oppo手机强行关机在哪(oppo手机强行关机在哪里)

  • 抖音手机停机了换绑(抖音手机停机了怎么取消橱窗退保证金了)

    抖音手机停机了换绑(抖音手机停机了怎么取消橱窗退保证金了)

  • usb-c是什么意思(usbc转usbc是什么意思)

    usb-c是什么意思(usbc转usbc是什么意思)

  • 微信以前用过的头像可以找回来吗(微信以前用过的头像怎么找回)

    微信以前用过的头像可以找回来吗(微信以前用过的头像怎么找回)

  • 荣耀9上市时间(荣耀9上市时间和价格)

    荣耀9上市时间(荣耀9上市时间和价格)

  • 华为路由器ws5200初始密码(华为路由器ws5200增强版)

    华为路由器ws5200初始密码(华为路由器ws5200增强版)

  • 趣步怎么连接手环(趣步怎么玩说明)

    趣步怎么连接手环(趣步怎么玩说明)

  • JS数组方法中哪些会改变原数组,哪些不会?(js中数组方法有哪些)

    JS数组方法中哪些会改变原数组,哪些不会?(js中数组方法有哪些)

  • python如何在word中读取表格内容(python如何在一个文件中运行另一个文件)

    python如何在word中读取表格内容(python如何在一个文件中运行另一个文件)

  • 树结构(树结构ADT知识点思维导图)

    树结构(树结构ADT知识点思维导图)

  • 个人出租住宅需要缴纳房产税吗
  • 员工加班误餐费怎么做凭证
  • 送货运杂费属于什么费用
  • 年报会计师审计费用
  • 弥补以前年度亏损会计分录
  • 资产入股会计处理
  • 建筑企业购进免税苗木1000元
  • 外商投资企业采取发包、出租经营
  • 个人购买商铺如何缴税
  • 专用存款账户需要备案吗
  • 银联交易手续费
  • 法人收到票据用什么抵扣
  • 产品置换广告费
  • 社保的计提缴纳分录怎么写
  • 分支机构的企业所得税申报流程是什么
  • 预警期内的应收账款管理
  • 小微企业从业人数包括
  • 无形资产和长期待摊费用思维导图
  • 腾讯电脑管家中蓝牙在哪
  • 固定资产不入账的后果
  • 如何用腾讯电脑管家删除文件
  • win10预安装环境
  • ajax无刷新技术
  • 已计提折旧怎么计算
  • 预收预付不一致什么意思
  • php require的用法
  • pnaico.exe是什么软件
  • php实现执行外部操作
  • 货物运输税费
  • 现金流量表的编报时间有
  • 搭建自己的php框架
  • 猿创设计科技有限公司
  • transformer中的token
  • php is_executable判断给定文件名是否可执行实例
  • 什么是免抵调库税额
  • python打开文本文档中文读不出来
  • 收到劳务派遣发票可以抵扣吗
  • 预缴增值税所需成本
  • 三栏式明细账对方科目有多个怎么办
  • 房东租金收据
  • 个体升一般纳税人的界限
  • 联营企业与合营企业纳入合并吗
  • 横幅属于是什么税收大类?
  • sql的where条件怎么写
  • 公司向股东个人借款怎么做账
  • 分配股利有几种形式
  • 存货计提存货跌价准备
  • 增值税发票丢失可以补开吗
  • 购销业务活动包括哪些
  • 工伤误工费标准是按照社平工资来算的吗
  • 研发费用人工费用包括
  • sql修改表增加列
  • mysql错误处理
  • 数据库高并发怎么解决
  • 取消windows 7的自动关机如何设置
  • winproxy.exe - winproxy是什么进程
  • win10缺少文件怎么办
  • window10的连接功能
  • win8丢失msvcp140.dll的解决办法
  • 为了保证系统安全,必须为用户和角色设置密码
  • linux系统ll
  • 用简洁的语言推荐一本书
  • 数独算法代码c语言
  • java script教程
  • jquery判断控件是否存在
  • 使用linux开发
  • css display:none使用注意事项小结
  • 动态修改ip
  • css回到页面顶部
  • ubuntu nodejs
  • python多线程异常后所有线程均不往下执行
  • python标准库参考手册
  • JavaScript中的数据类型分为两大类
  • ExpandableListView 实现分组购物车
  • 上市公司的税务风险大吗
  • 纳税服务的背景是什么
  • 深圳市电价价目表详解
  • 江苏社保缴费基数是什么意思
  • 开票软件里的统计怎么弄
  • 北京商业企业运行基地
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设