• json-server服务详解


    json-server服务详解

    第1章 json-server服务

    JSON-Server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源。

    1.1 json-server的安装

    命令:npm install --g json-server
    • 1

    1.2 json-server服务的启动

    json-server可以直接把一个json文件托管成一个具备全RESTful风格的API,并支持跨域、jsonp、路由订制、数据快照保存等功能的 web 服务器
    db.json文件的内容格式如下:
    在这里插入图片描述
    通过启动json-server服务并侦听db.json,就可以将db.json文件托管成一个 web 服务,此时db.json就充当了数据库服务器的作用。

    命令:json-server --port 53000 --watch db.json(不指定端口时默认端口是3000)
    • 1

    如下图所示, 则证明json-server服务启动成功
    在这里插入图片描述
    此时,你可以打开你的浏览器,然后输入:http://localhost:3000/students
    在这里插入图片描述
    在这里插入图片描述

    1.3 json-server 启动参数表

    • 语法:json-server [options]
    • source可以是json文件或者js文件
    • [options]参数列表:
    参数简写默认值说明
    --config -c 指定配置文件 [默认值: "json-server.json"]
    --port -p 设置端口[默认值为3000] Number
    --host -H 设置域[默认值为"0.0.0.0"] String
    --watch -w Watch file(s) 是否监听
    --routes -r 指定自定义路由  
    --middlewares -m 指定中间件 files [数组]
    --static -s Set static files directory 静态目录,类比:express的静态目录
    --readonly --ro Allow only GET requests [布尔]
    --nocors --nc Disable Cross-Origin Resource Sharing [布尔]  
    --no gzip gzip --ng Disable GZIP Content-Encoding [布尔]  
    --id -i Set database id property (e.g. _id) [默认值: "id"]
    --delay -d Add delay to responses (ms)  
    --snapshots -S Set snapshots directory [默认值: "."]  
    --foreignKeySuffix -- fks Set foreign key suffix (e.g. _id as in post_id) [默认值: "Id"]
    --help -h 显示帮助信息 [布尔]
    --version -v 显示版本号 [布尔]
    几种启动json-server的方式
    命令1:json-server db.json
    命令2:json-server --watch app.js
    命令3:json-server --watch -c ./jsonserver.json
    命令4:json-server --port 8888 --watch db.json(不指定端口时默认端口是3000)
    • 1
    • 2
    • 3
    • 4

    1.4 通过app.js动态生成模拟数据

    把app.js文件返回的数据托管成web服务。
    使用app.js配合mockjs库可以很方便的进行生成模拟数据。

    // 用mockjs模拟生成数据
    const Mock = require('mockjs');
    
    module.exports = () => {
      // 使用 Mock
      var data = Mock.mock({
        'students|10': [
          {
            // 属性 id 是一个自增数,起始值为 1,每次增 1
            "id|+1": 10,
            "name|1": ["小明","小花","小龙","小林","小雨","小虎","小艾","小梦","小凡","小云"],
            "class|1": ["三年一班","三年二班"],
            "school":"高新一中",
            "category_Id": 995
          }
        ]});
      // 返回的data会作为json-server的数据
      return data;
    };

     

     

    1.5 使用默认路由

    默认的路由

    json-server为提供了GET,POST, PUT, PATCH ,DELETE等请求的API,分别对应数据中的所有类型的实体。

    # 获取所有的学生信息
    GET /students
    
    # 获取id=1001的学生信息
    GET /students/1001
    
    # 添加学生信息,请求body中必须包含学生的属性数据,json-server自动保存。
    POST  
    /students
    
    # 修改学生信息,请求body中必须包含学生的属性数据
    PUT    /students/1
    
    # 删除学生信息
    DELETE /students/1
    
    # 获取具体学生信息id=1001
    GET  /students/1001
    
    # 模糊查询学生信息
    GET  /students/name_like='小' // _like--模糊查询的关键字
    
    # 过滤查询学生信息
    GET /students?id=json-server&name='小花'
    GET /students?id=1&id=2
    
    # 查询学生信息,使用关系表达式进行过滤
    GET /students?id_ne=1001  // _ne--不等于
    GET /students?id_lte=1001 // _lte--小于等于
    GET /students?id_lte=1001 // _gte--大于等于 
    
    # 查询学生信息,分页查询
    GET /students?_page=5 // 查询第5页的学生信息
    GET /students?_page=5&_limit=20  // 查询第5页的学生信息并设置每页显示信息条数为20条
    
    # 查询学生信息,并以某个字段进行排序,同时可指定升序还是降序排列
    GET /students?_sort=name&_order=asc   // 按照姓名升序排列  _sort--排序关键字,_order--升降序关键字
    GET /students/?_sort=id&_order=desc  // 按照学号降序排列
    GET /students?_sort=name,id&_order=desc,asc // 同时排序多个字段
    
    # 查询学生信息,从任意位置开始查询已知数据中的部分数据
    GET /students?_start=20&_end=30  // 从第20条开始查询10条数据
    GET /students?_start=20&_limit=10 // 从第20条开始查询,每页显示10条数据
    
    # 全文检索
    GET /students?q=internet // 通过q参数进行全文检索

     

     

    1.6 使用自定义路由

    配置自定义路由的命令

    命令:json-server --watch --routes route.json db.json
    • 1

    路由配置文件的内容格式如下:

    {
      "/api/*": "/$1",    //   /api/students<==>  /students
      "/:students/:id/show": "/:students/:id",
      "/posts/:id": "/posts?id=:id",
      "/students\?id=:id": "/posts/:id"
    }

     

     

    1.6 自定义配置文件

    启动json-server时, 如果自定义配置的参数和文件过多,容易出现命令敲错的现象。json-server允许我们把所有的配置放到一个配置文件中,这个配置文件默认json-server.json;
    配置文件的主要内容如下:

    {
      "port": 8888,  // 自定义服务监听端口
      "watch": true, // 服务监听
      "static": "./public", //静态文件目录
      "read-only": false,  // 是否只允许get请求
      "no-cors": false, // 是否允许跨域访问
      "no-gzip": false, // 是否可压缩
      "routes": "route.json" // 自定义路由
    }

     

     

    使用配置文件启动json-server命令
    json-server --watch -c jserver.json db.json
    • 1
     
  • 相关阅读:
    一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路
    mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
    mycat读写分离+垂直切分+水平切分+er分片+全局表 测试
    LVS Nginx HAProxy 优缺点
    nginx map配置根据请求头不同分配流量到不同后端服务
    Javamail发送邮件
    java发送html模板的高逼格邮件
    学习openresty时,nginx的一个坑
    mysql数据导出golang实现
    mysql支持原生json使用说明
  • 原文地址:https://www.cnblogs.com/fsg6/p/13202760.html
Copyright © 2020-2023  润新知