Json-server的安装和介绍
什么是json-server
json-server是一个npm(Node Package Manager)模块,用于轻松创建模拟的REST API。数据以JSON(JavaScript Object Notation)格式在客户端和服务器之间传输。
安装:
npm install json-server
创建数据库文件: 创建一个以JSON格式存储模拟数据库数据的.json文件。让我们向文件中添加一些数据。让我们将文件命名为db.json。Id属性必须用于单独访问数据,其值应该是唯一的。
注意:
有效对象具有通常结构 {key: data} 。data可以是数字、字符串、嵌套对象或数组。data也可以是变量或函数调用的结果,在此情况下,在转换为字符串之前,它将被计算。对于分配字符串键、值对和最后一个键值对,应使用双引号,并且值对后不应跟随逗号。
令data为:
{
"students":[
{
"id":1,
"name":"alex",
"grade":11,
"marks":{
"maths":80,
"physics":50,
"chemistry":35
}
},
{
"id":2,
"name":"gary",
"grade":12,
"marks":{
"maths":70,
"physics":50,
"chemistry":65
}
},
{
"id":3,
"name":"stuart",
"grade":11,
"marks":{
"maths":80,
"physics":20,
"chemistry":90
}
}
]
}
运行json-server: 默认端口是3000,可以使用3000命令来运行服务器
json-server db.json
注意: 这里,db.json是JSON文件的名称
在另一个端口上运行服务器: 运行服务器在另一个端口上的命令是
json-server db.json --port PORT_NUMBER
运行实时服务器: 要更新服务器,请使用以下命令在.json文件中手动更改
json-server --watch db.json
运行时,json server 模块会为数据服务器生成一个主页路由,可以通过URL“http://localhost:3000”(如果端口是3000)访问该路由。
路由和请求: json-server 模块会自动生成 JSON 文件中高级属性的路由。可以在 json-server 运行图像中看到,students 的路由生成为 home_route/students,并作为响应返回学生的数据。
路由:
如何执行路由
可以使用浏览器或类似 postman 和 Thunderclient 扩展在 vscode 中使用来执行路由。
1. 显示所有学生的路由:
home_route(localhost:3000)/students
此路由返回学生数据的JSON响应:

2. 根据id显示学生的路由:
home_route/students/id
json-server在将id添加到数据库对象时将其识别为主键,并为该对象数组提供了一个路由来根据id检索文档。假设我们想要id为2的学生,我们可以通过请求路由“home_route/students/2”来获取该学生的数据。

请求:
json-server支持
1. GET: 使用HTTP GET请求从服务器/数据库检索数据。它将资源请求发送到服务器,并以适当的数据响应请求。
GET请求使用URL(统一资源定位符)将请求发送到服务器。
示例: URL http://localhost:3000/students 用于检索学生数据。
2. POST: 使用HTTP POST请求将数据发送到服务器或数据库。它将数据添加到请求体中,服务器将解析数据,并将其添加到数据库。
示例: URL http://localhost:3000/students 用于将学生数据添加到服务器/数据库(要添加的数据在请求体中)。
3. DELETE: 使用HTTP DELETE请求将删除请求发送到服务器/数据库。使用具有适当详细信息的URL发送删除请求。
示例: URL用于删除ID为“1”的学生数据。
4. PUT: 使用HTTP PUT请求将添加/替换数据请求发送到服务器/数据库。它将要替换/添加的数据发送到请求体中。
从技术上讲,这与POST请求相同,但逻辑上PUT请求不会创建重复项。
5. PATCH: 使用HTTP PATCH请求将更新请求发送到服务器/数据库。它将要更新的数据发送到请求体中。
示例: URL http://localhost:3000/students/1 用于更新ID为“1”的学生数据(要更新的数据在请求体中)。
高级功能和查询:
1. 高级查询:
- SORT: 该查询用于按排序顺序从服务器获取数据。 示例: URL http://localhost:3000/students?_sort=name&_order=asc 用于按升序获取数据的名称。
- FILTER: 该查询用于从服务器获取具有特定值的数据。 示例: URL http://localhost:3000/students?name=Alex 用于获取名称为”Alex”的数据。
- PAGINATE: 该查询用于限制要返回的行数。 示例: URL http://localhost:3000/students?_limit=5 用于获取最多5行数据。
2. 自定义路由:
json-server为数据创建默认路由。但是json-server也支持自定义路由。
使用命令 json-server db.json –routes routes.json 可以动态添加自定义路由,其中routes.json是包含自定义路由的文件。
3. 中间件:
中间件是具有对请求对象和响应对象的访问权限,并且还具有调用下一个中间件的能力的函数。
使用命令 json-server db.json –middlewares ./mware.js 可以动态添加中间件,其中mware.js是包含中间件的文件。
极客教程