【json-server】 用法详解

本文用的版本json-server@0.12.0,node 6.11.4

JSON-Server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源。
安装
首先你的电脑中需要安装nodejs,建议使用最新版本。然后全局安装json server。如果本地已经有了nodejs且不是最新的版本,则需要安装合适的版本。如果想查看合适的版本,可以参考npm 命令汇总npm view例子

npm install json-server -g

安装完成后可以用 json-server -h 命令检查是否安装成功,成功后会出现

json-server [options] <source>

选项:
  --config, -c       Path to config file            [默认值: "json-server.json"]
  --port, -p         Set port                                     [默认值: 3000]
  --host, -H         Set host                                [默认值: "0.0.0.0"]

运行
安装完成后,可以在任一目录下建立一个 xxx.json 文件,例如在 mock/ 文件夹下,建立一个 db.json 文件,并写入以下内容,并在 mock/ 文件夹下执行 json-server db.json -p 3003 。

{
  "employees": [
    {
      "id": 1,
      "name": "Pankaj",
      "salary": "10000"
    },
    {
      "name": "David",
      "salary": "5000",
      "id": 2
    }
  ],
   "student": 
    {
      "id": 3,
      "name": "Pankaj2",
      "age": "10000"
    }
  ]
}
D:\test1>json-server db.json -p 3004

  \{^_^}/ hi!

  Loading db.json
  Done

  Resources
  http://localhost:3004/employees

  Home
  http://localhost:3004

GET
查看全部数据

http://localhost:3004/db
{
  "employees": [
    {
      "id": 1,
      "name": "Pankaj",
      "salary": "10000"
    },
    {
      "name": "David",
      "salary": "5000",
      "id": 2
    }
  ]
  ....
}

查看所有的employees信息,端口号后接key即可

http://localhost:3004/employees
[
  {
    "id": 1,
    "name": "Pankaj",
    "salary": "10000"
  },
  {
    "name": "David",
    "salary": "5000",
    "id": 2
  }
]

根据ID查询指定的数据,限数组

http://localhost:3004/employees/1
{
  "name": "Lisa",
  "salary": 2000,
  "id": 1
}

自定义路由
在同一文件夹下新建route.json:

{
  "/api/*": "/$1"         //   /api/posts => /posts
}

上面route.json的意思就是,当调用/api/posts时,重定向到/posts。

命令行中输入如下命令即可实现简单的自定义路由, 路由文件通过–routes 参数来指定:

json-server --routes route.json db.json

对于路由的自定义配置json,github中也提供了一些其他的语法:

{
  "/api/*": "/$1",
  "/:resource/:id/show": "/:resource/:id",
  "/posts/:category": "/posts?category=:category",
  "/articles\\?id=:id": "/posts/:id"
}

作用如下:

/api/posts # → /posts
/api/posts/1  # → /posts/1
/posts/1/show # → /posts/1
/posts/javascript # → /posts?category=javascript
/articles?id=1 # → /posts/1

常见问题:
1.SyntaxError: Unexpected token  in JSON at position 0
保证json文件的编码格式为UTF-8无bom格式

 json-server  db3.json --routes router.json -p 3004 
  Loading db3.json
  Loading router.json
undefined:1
{
^

SyntaxError: Unexpected token  in JSON at position 0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值