日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

json-server是一款json數(shù)據(jù)服務(wù)器,可以對json文件、js腳本生成的json數(shù)據(jù)、遠(yuǎn)程json數(shù)據(jù)進(jìn)行RESTFUL風(fēng)格的增刪改查操作,可以通過參數(shù)、分頁、排序、全文搜索、關(guān)聯(lián)查詢、范圍查詢等進(jìn)行復(fù)雜查詢,對開發(fā)者特別是前端開發(fā)者是一款非常好用的開發(fā)工具。

官網(wǎng):
https://www.npmjs.com/package/json-server

只要一個(gè)json文件3分鐘搭建一個(gè)json服務(wù)器

官網(wǎng)



下面我們來介紹具體的用法,

首先確保你本地安裝了node.js。

安裝json-server

npm install -g json-server

創(chuàng)建一個(gè)json文件 db.json

{
  "posts": [
    { "id": 1, "title": "測試標(biāo)題1", "author": "張三" },
    { "id": 2, "title": "測試標(biāo)題2", "author": "李四" }
  ],
  "comments": [
    { "id": 1, "body": "這里是內(nèi)容體1", "postId": 1 },
    { "id": 2, "body": "這里是內(nèi)容體2", "postId": 2 }
  ],
  "profile": { "name": "測試json" }
}

指定json文件運(yùn)行服務(wù),命令行運(yùn)行以下命令

json-server --watch db.json
只要一個(gè)json文件3分鐘搭建一個(gè)json服務(wù)器

運(yùn)行服務(wù)

服務(wù)器就這么搭建好了,就是這么的快,可能還不要3分鐘。

增刪改查-請求示例

請求方式遵循restful風(fēng)格,

  • GET-查詢、
  • POST-新增、
  • PUT-修改、
  • PATCH-修改屬性、
  • DELETE-刪除

get請求-查詢

可以看到資源路徑都列在控制臺(tái)里了,瀏覽網(wǎng)址
http://localhost:3000/posts ,出現(xiàn)以下結(jié)果,posts路徑就是json文件里的key

[
  {
    "id": 1,
    "title": "測試標(biāo)題1",
    "author": "張三"
  },
  {
    "id": 2,
    "title": "測試標(biāo)題2",
    "author": "李四"
  }
]

 

POST請求-新增

使用POST請求會(huì)添加一條新記錄,如POST請求:
http://localhost:3000/posts,返回新記錄的id。

{
    "id": 3
}

json文件也被更改



{
  "posts": [
    {
      "id": 1,
      "title": "測試標(biāo)題1",
      "author": "張三"
    },
    {
      "id": 2,
      "title": "測試標(biāo)題2",
      "author": "李四"
    },
    {
      "id": 3
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "這里是內(nèi)容體1",
      "postId": 1
    },
    {
      "id": 2,
      "body": "這里是內(nèi)容體2",
      "postId": 2
    }
  ],
  "profile": {
    "name": "測試json"
  }
}

 

PUT請求-修改

PUT請求會(huì)修改一條記錄,如請求:
http://localhost:3000/posts/3,我們在請求body里輸入以下修改內(nèi)容:

{
    "title":"這是修改的內(nèi)容",
    "author":"王五"
}

json文件變成了

{
  "posts": [
    {
      "id": 1,
      "title": "測試標(biāo)題1",
      "author": "張三"
    },
    {
      "id": 2,
      "title": "測試標(biāo)題2",
      "author": "李四"
    },
    {
      "title": "這是修改的內(nèi)容",
      "author": "王五",
      "id": 3
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "這里是內(nèi)容體1",
      "postId": 1
    },
    {
      "id": 2,
      "body": "這里是內(nèi)容體2",
      "postId": 2
    }
  ],
  "profile": {
    "name": "測試json"
  }
}

PATCH請求-修改單個(gè)屬性

PATCH與PUT的區(qū)別在于,PUT的請求內(nèi)容需要包含整個(gè)對象除id外的所有屬性,PATCH的請求內(nèi)容可以是單個(gè)屬性。

比如我們PATCH請求:
http://localhost:3000/posts/3 ,body為

{
    "title":"這是修改的內(nèi)容xxxx"
}

json文件里id為3的記錄僅title屬性發(fā)生改變,其他字段不變

{
  "posts": [
    {
      "id": 1,
      "title": "測試標(biāo)題1",
      "author": "張三"
    },
    {
      "id": 2,
      "title": "測試標(biāo)題2",
      "author": "李四"
    },
    {
      "title": "這是修改的內(nèi)容xxxx",
      "author": "王五",
      "id": 3
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "這里是內(nèi)容體1",
      "postId": 1
    },
    {
      "id": 2,
      "body": "這里是內(nèi)容體2",
      "postId": 2
    }
  ],
  "profile": {
    "name": "測試json"
  }
}

DELETE請求-刪除

DELETE請求會(huì)刪除一條數(shù)據(jù),如請求:
http://localhost:3000/posts/3 。

刪除后的json文件內(nèi)容發(fā)生改變,可以看到id為3的記錄沒了:

{
  "posts": [
    {
      "id": 1,
      "title": "測試標(biāo)題1",
      "author": "張三"
    },
    {
      "id": 2,
      "title": "測試標(biāo)題2",
      "author": "李四"
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "這里是內(nèi)容體1",
      "postId": 1
    },
    {
      "id": 2,
      "body": "這里是內(nèi)容體2",
      "postId": 2
    }
  ],
  "profile": {
    "name": "測試json"
  }
}

過濾id

瀏覽
http://localhost:3000/posts/1 ,代表讀取post里id為1的那條數(shù)據(jù),注意不是代表第1條,而是id為1的那條。

{
  "id": 1,
  "title": "測試標(biāo)題1",
  "author": "張三"
}

過濾參數(shù)

瀏覽
http://localhost:3000/posts?author=張三

[
  {
    "id": 1,
    "title": "測試標(biāo)題1",
    "author": "張三"
  }
]

如果有多級(jí)也可以用“.”+屬性名查詢?nèi)?br />http://localhost:3000/posts?author.name=張三。

排序

通過“_sort”指定排序?qū)傩院?ldquo;_order”指定asc順序還是desc倒序查詢,如:
http://localhost:3000/posts?_sort=id&_order=desc 。

分頁

通過“_page”和“_limit”進(jìn)行分頁查詢,如查詢第一頁,每頁20條查詢寫法:
http://localhost:3000/posts?_page=1&_limit=20

截取部分

通過“_start”、“_end”和“_limit”參數(shù)查詢,如從20條開始查詢10條數(shù)據(jù):
http://localhost:3000/posts/1/comments?_start=20&_limit=10

不等于查詢

通過“屬性名_ne”寫法如:
http://localhost:3000/posts?id_ne=1

[
  {
    "id": 2,
    "title": "測試標(biāo)題2",
    "author": "李四"
  }
]

大于等于/小于等于查詢

通過“屬性名_gte”查詢大于等于,通過“屬性名_lte”查詢小于等于,寫法如:
http://localhost:3000/posts?views_gte=10&views_lte=20

[]

like查詢

通過“屬性名_like”的寫法查詢?nèi)?br />http://localhost:3000/posts?title_like=標(biāo)題1

[
  {
    "id": 1,
    "title": "測試標(biāo)題1",
    "author": "張三"
  }
]

全文搜索

通過q查詢參數(shù)如:
http://localhost:3000/posts?q=標(biāo)題

[
  {
    "id": 1,
    "title": "測試標(biāo)題1",
    "author": "張三"
  },
  {
    "id": 2,
    "title": "測試標(biāo)題2",
    "author": "李四"
  }
]

關(guān)聯(lián)查詢

通過_embed參數(shù)請求如:
http://localhost:3000/posts?_embed=comments ,代表posts關(guān)聯(lián)comments。

[
  {
    "id": 1,
    "title": "測試標(biāo)題1",
    "author": "張三",
    "comments": [
      {
        "id": 1,
        "body": "這里是內(nèi)容體1",
        "postId": 1
      }
    ]
  },
  {
    "id": 2,
    "title": "測試標(biāo)題2",
    "author": "李四",
    "comments": [
      {
        "id": 2,
        "body": "這里是內(nèi)容體2",
        "postId": 2
      }
    ]
  }
]

指定端口

命令增加 --port參數(shù)

json-server --watch db.json --port 3004

 

使用js腳本生成數(shù)據(jù)代替json

創(chuàng)建一個(gè)index.js文件用于生成數(shù)據(jù)

module.exports = () => {
  const data = { users: [] }
  // Create 1000 users
  for (let i = 0; i < 1000; i++) {
    data.users.push({ id: i, name: `user${i}` })
  }
  return data
}

運(yùn)行服務(wù)指定js文件

json-server index.js

使用遠(yuǎn)程地址加載數(shù)據(jù)

json-server http://example.com/file.json
json-server http://jsonplaceholder.typicode.com/db

作為靜態(tài)文件服務(wù)器

創(chuàng)建一個(gè)public目錄,創(chuàng)建一個(gè)內(nèi)容為hello world的index.html文件。

mkdir public
echo 'hello world' > public/index.html
json-server db.json

訪問 http://localhost:3000/ ,根路徑會(huì)默認(rèn)顯示public目錄下的內(nèi)容,會(huì)顯示index.html的內(nèi)容。

'hello world'

也可以通過--static參數(shù)指定其他路徑的目錄

json-server db.json --static ./some-other-dir

自定義請求路由

創(chuàng)建一個(gè) routes.json文件用于定義請求路由,每個(gè)路徑都由 / 開頭。

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

啟動(dòng)服務(wù)時(shí)指定請求路由定義文件

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

以下訪問左邊的路徑分別對應(yīng)右邊的原始請求效果

  • /api/posts ==》 /posts
  • /api/posts/1 ==》 /posts/1
  • /posts/1/show ==》 /posts/1
  • /posts/JAVAscript ==》 /posts?category=JavaScript
  • /articles?id=1 ==》 /posts/1

更多功能可以通過json-server的官網(wǎng)查閱,希望本文對你有所幫助。

分享到:
標(biāo)簽:服務(wù)器 json
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定