json-server Node.js 服务,前端模拟后端提供json接口服务

json-server Node.js 服务,前端模拟后端提供json接口服务

背景:

   前后端分离的项目,如果前端写页面的话,必须的后端提供接口文件,作为前端等待时间太久,不便于开发进行,如果前端写的过程中自己搭建一个简要的后端的json服务接口,就是可以快速进行开发事项的进行,什么内容比较好呢,那就是json-server服务可以满足上述的要求,启动服务加载个“*.json”文件就是可以提供接口了

 还可以作为不同程序的一个简单的提供json服务接口事项

1, 安装前准备
1.1 下载安装 Node.js

在官方网站下载msi安装包 https://nodejs.org/zh-cn/download/ ,下载软件包,下一步,下一步安装即可

可以借鉴,这个简要设置步骤

nodejs安装后的配置:_node 查看 配置仓库_雨师@的博客-CSDN博客

https://ht666666.blog.csdn.net/article/details/128131999

1.2 node -v

验证node的版本号码

 1.2.1检查一下Node配置 

npm config ls -l

1.3安装 json-server 

npm install -g json-server 

 

安装完毕

1.4启动服务

 json-server --watch lab.json 

1.5数据lab.json文件

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

1.6启动服务

 

 http://localhost:3000/posts

http://localhost:3000/comments

http://localhost:3000/profile

本地启动服务:
http://localhost:3000

在浏览器输入上述 url,即可访问响应的数据



 2.restful接口

支持的方法

可以使用任何 HTTP方法

查询

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。

 3.验证数据的可行性



4. CRUD-Demo

以下的dmeo,我们都使用postman工具来完成
执行之前,先使用 json-server db.json运行服务器

4.1 查询

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

4.2 新增

POST请求:http://localhost:3000/comments
参数:{"body":"hello restapi","postId":1}

4.3 修改

PUT请求:http://localhost:3000/comments/1
参数:{"body":"hello world","postId":888}

4.4 删除

DELETE请求:http://localhost:3000/comments/2

4.5 使用ajax发送增删改查请求

我们还可以通过jQuery的ajax来发送操作数据的请求

//新增
$.ajax({
type: 'POST',
url: 'http://localhost:3000/comments',
data:{
body:'hello world',
postId:888
},
success: function (data) {
console.log(data)
}
})

//查询
$.ajax({
type: 'GET',
url: 'http://localhost:3000/comments',
success: function (data) {
console.log(data)
}
})

//修改
$.ajax({
type: 'PUT',
url: 'http://localhost:3000/comments/1',
data:{
body:'hello world',
postId:888
},
success: function (data) {
console.log(data)
}
})

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

过滤

我们可以通过在URL后面加上参数,来达到过滤数据的目的

例如:

http://localhost:3000/comments/1:查询id为1的数据,返回一个对象
http://localhost:3000/comments?name=zhangsan:返回一个数组,name值都为zhangsan

5. 注意

如果需要使用 json-server 模拟多层路由嵌套,无法通过 lab.json中数据的多层嵌套,达到模拟多层路由嵌套的目的。
也就是说,路由只能匹配到 db.json这个json最外层的key值。而里层的key值,都不会被路由匹配

其它,json-server启动服务的时候,常见的问题就是提示不是可运行的程序,主要问题就是路径的问题,这里就是不展开说明了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Qt designer

使用 Qt designer 1、配置Qt designer外部工具2、Qt designer(Qt 设计师)使用2.1 创建保存文件ui2.2 pyuic5.exe 工具 转化成为py文件2.3 直接导入UI文件 2、qrc资源管理器 1、配置Qt designer外部工具 实质就是 Qt\bin 工具中 designer.exe 请查看 PyQ…

sublime快速替换

1、快速查找 ControlShiftF,可以快速查找或替换某些值 2、批量在行首或者行尾添加字符串的方法 ①选中要操作的行,全选就按CtrlA;②使用快捷键CtrlShiftL 3、快速删除换行符 选中需要操作的行(不选择则表示全选)Ctrl H 调出…

wpf prism使用

目录 1.Nuget中安装prism框架: 2.改造程序启动入口 3.View和ViewModel自动关联 4.绑定 5.Command 6.Event Aggregator(事件聚合器)、消息通知 7.弹窗、对话服务 DialogService 8.Region区域 9.Navigation导航 10.module 模块 1.Nug…

清洁机器人规划控制方案

清洁机器人规划控制方案 作者联系方式Forrest709335543qq.com 文章目录 清洁机器人规划控制方案方案简介方案设计模块链路坐标变换算法框架 功能设计定点自主导航固定路线清洁区域覆盖清洁贴边沿墙清洁自主返航回充 仿真测试仿真测试准备定点自主导航测试固定路线清洁测试区域…

【C++技能树】Vector类解析与模拟实现

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我bua! Vector 0.Vector简介1.Vector常用接口1.1constructor构造函数1.2 iteratorsort与findfindsort 1.3 Capacity相关接口1.4 Modify相关接口 2. Vector模拟实…

linux:secureCRT通过pem证书远程访问服务器

参考: secureCRT通过pem证书远程访问服务器_Fengshana的博客-CSDN博客 总结: 配置公钥即可

STM32 串口发送数据、串口中断 7.19

STM32 串口发送: 全双工 异步 串行通信方式IIC: CLK(时钟线) DAT(数据线)同步协议:通过时钟线保证数据线是有效的 异步协议:通过寄存器接受到数据之后产生中断,从而传输…

前端vue uni-app仿美团下拉框下拉筛选组件

在前端Web开发中,下拉筛选功能是一种非常常见的交互方式,它可以帮助用户快速选择所需的选项。本文将介绍如何利用Vue.js和uni-app框架来实现一个高效的下拉筛选功能。通过使用这两个强大的前端框架,我们可以轻松地创建具有响应式用户操作的下…

Sublime Text 4 激活教程(Windows+Mac)

下载安装 官网 https://www.sublimetext.com 点击跳转 2023.7.21 版本为4143 Windows激活方式 一、激活License方式 入口在菜单栏中"Help” -> “Enter License” 注意格式,可能会过期失效,失效就用方式二 Mifeng User Single User License E…

Linux底层

一. arm基础知识 基础:c语言 具有一定硬件基础 特点---》前后联系 arm目标: 看懂简单的汇编代码 会看电路图、芯片手册 学会如何用软件控制硬件思想 解决问题的办法 谈谈对嵌入式的理解? 以计算应用为中心,软硬件可裁剪的…

JVM Optimization Learning(二)

一、Run-time data areas PC ▪ Each Java Virtual Machine thread has its own pc (program counter) register. ▪ At any point, each Java Virtual Machine thread is executing the code of a single method, namely the current method for that thread. ▪ If that m…

数据库 - RDBMS

1、什么是数据库? 数据库是一种用于存储和管理数据的系统或软件。它是结构化数据的集合,以便于访问、管理和更新。数据库可用于在计算机系统中组织、存储、检索和处理大量数据。 数据库通常由一组相关的数据表组成,每个表都有特定的列和行&…

mybatis学习笔记之使用javassist生成类

文章目录 使用javassist动态生成类使用javassist动态生成类并实现接口实现接口中所有的方法工具类GenerateDaoProxy的编写 使用javassist动态生成类 Testpublic void testGennerateFirstClass() throws Exception{//获取类池,这个类池就是用来生成class的ClassPool …

Cloudreve搭建云盘系统,并实现随时访问

文章目录 1、前言2、本地网站搭建1.环境使用2.支持组件选择3.网页安装4.测试和使用5.问题解决 3、本地网页发布1.cpolar云端设置2.cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局,一时间公…

C#之委托

目录 一、简介 (一)概述 (二)类与委托 二、声明委托 三、使用委托 (一)创建委托对象 (二)使用委托 四、简单的委托示例 五、Action[T]和Func[T]委托 六、多播委托 七、匿…

ONNX Runtime 加速深度学习(C++ 、python)详细介绍

ONNX Runtime 加速深度学习(C 、python)详细介绍 本文在 https://blog.csdn.net/u013250861/article/details/127829944 基础上进行了更改,感谢原作! ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式的推理框架&#xff0c…

妙记多 Mojidoc PC端(Mac 端+windows端)Beta版本正式上线!

你们呼唤了无数次的妙记多 Mojidoc PC客户端 Beta版本正式上线啦! 感谢300位妙友积极参与内测,给予了我们很多非常有效的意见和建议!我们会根据用户反馈不断优化和修复相关功能,在此感谢妙友们一直以来的支持~ PC端拥…

SkyWalking链路追踪中span全解

基本概念 在SkyWalking链路追踪中,Span(跨度)是Trace(追踪)的组成部分之一。Span代表一次调用或操作的单个组件,可以是一个方法调用、一个HTTP请求或者其他类型的操作。 每个Span都包含了一些关键的信息&am…

numpy 笔记 partition和

1 partition 对数组进行部分排序,返回的是数组本身的部分排序结果 1.1 使用方法 numpy.partition(a, kth, axis-1, kindintroselect, orderNone) 1.2 参数说明 a输入的数组kth分割点,前kth的元素会按照部分排序的顺序排列,而在kth之后的…