使用json-server簡單完成CRUD模擬后臺數(shù)據(jù)的方法
在開發(fā)中,后端的接口往往是較晚出來的,但是有時(shí)候我們必須給前端頁面一些虛假的數(shù)據(jù)去開發(fā),這個(gè)時(shí)候一些mock工具就很有必要了,最終我選擇了 json server 工具,因?yàn)樗銐蚝唵危乙材芎湍銈兯熘腗ock.js 配合模擬數(shù)據(jù)(思考:mockjs是可以作為一個(gè)獨(dú)立的 mock server 存在,但為什么不單獨(dú)用它?)。
安裝
npm install json-server -g
安裝完成后可以用 json-server -h
命令檢查是否安裝成功。
json-server [options] <source> Options: --config, -c 指定 config 文件 [默認(rèn): "json-server.json"] --port, -p 設(shè)置端口號 [default: 3000] --host, -H 設(shè)置主機(jī) [默認(rèn): "0.0.0.0"] --watch, -w 監(jiān)控文件 [boolean] --routes, -r 指定路由文件 --static, -s 設(shè)置靜態(tài)文件 --read-only, --ro 只允許 GET 請求 [boolean] --no-cors, --nc 禁止跨域資源共享 [boolean] --no-gzip, --ng 禁止GZIP [boolean] --snapshots, -S 設(shè)置快照目錄 [默認(rèn): "."] --delay, -d 設(shè)置反饋延時(shí) (ms) --id, -i 設(shè)置數(shù)據(jù)的id屬性 (e.g. _id) [默認(rèn): "id"] --quiet, -q 不輸出日志信息 [boolean] --help, -h 顯示幫助信息 [boolean] --version, -v 顯示版本號 [boolean]
使用
創(chuàng)建個(gè) Mock
目錄,在該目錄下創(chuàng)建一個(gè)json文件, db.json
{ "list": [ { "name": "游魂博客", "link": "www.iyouhun.com", "id": 1 }, { "id": 2, "name": "買賣淘", "link": "www.868432.net" }, { "id": 3, "name": "游魂全自動網(wǎng)頁制作系統(tǒng)", "link": "www.youhun.wang" }, { "id": 4, "name": "游魂博客", "link": "www.iyouhun.com" }, { "id": 5, "name": "買賣淘", "link": "www.868432.net" }, { "id": 6, "name": "游魂全自動網(wǎng)頁制作系統(tǒng)", "link": "www.youhun.wang" }] }
在Mock目錄下執(zhí)行
json-server db.json
打開瀏覽器, http://localhost:3000 ,查看頁面??梢栽囍苯釉L問他索引出來的資源 如果要監(jiān)控json文件的變化,啟動的時(shí)候加上參數(shù) --watch 或者 -w 。
支持的方法
你可以使用任何 HTTP method
如:
- GET /list 獲取列表
- GET /list/1 獲取id=1的數(shù)據(jù)
- POST /list 創(chuàng)建一個(gè)項(xiàng)目
- PUT /list/1 更新一個(gè)id為1的數(shù)據(jù)
- PATCH /list/1 部分更新id為1的數(shù)據(jù)
- DELETE /list/1 刪除id為1的數(shù)據(jù)
注意:
- 當(dāng)你發(fā)送POST,PUT,PATCH 或者 DELETE請求時(shí),變化會自動安全的保存到你的db.json文件中。
- 你的請求體body應(yīng)該是封閉對象。比如
{"name": "Foobar"}
- id不是必須的,在PUT或者PATCH方法中,任何的id值將會被忽略。
- 在POST請求中,id是可以被添加的,如果該值沒有沒占用,會使用該值,否則自動生成。
- POST,PUT或者PATCH請求應(yīng)該包含一個(gè)
Content-Type:application/json
的header,來確保在請求body中使用json。
操作數(shù)據(jù)
這里請求數(shù)據(jù)我全部使用postman
工具,最后一條刪除我使用jquery的$.ajax
舉例
查詢
GET請求:http://localhost:3000/list
新增
POST請求:http://localhost:3000/list
參數(shù):{"name":"游魂博客","link":www.iyouhun.com}
請求成功后會看到返回的就是新增成功的友鏈信息
修改
PUT請求:http://localhost:3000/list/1 修改id為1的友鏈信息
參數(shù):{"name":"哈哈哈哈哈客","link":"www"}
刪除
DELETE請求:http://localhost:3000/list/1 刪除id為1的友鏈信息
$.ajax({ type: 'DELETE', url: 'http://localhost:3000/list/1', success: function (data) { console.log(data) } })
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js控制按鈕,防止頻繁點(diǎn)擊響應(yīng)的實(shí)例
下面小編就為大家?guī)硪黄猨s控制按鈕,防止頻繁點(diǎn)擊響應(yīng)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02javascript arguments 傳遞給函數(shù)的隱含參數(shù)
眾所周知,js是腳本語言,腳本語言的一個(gè)特點(diǎn)就是極其靈活。有時(shí)“靈活”到使我這種習(xí)慣c系主流語言的人不得不佩服腳本的強(qiáng)大。比如這里要講到的 arguments參數(shù)。2009-08-08深入理解JavaScript系列(15) 函數(shù)(Functions)
本章節(jié)我們要著重介紹的是一個(gè)非常常見的ECMAScript對象——函數(shù)(function),我們將詳細(xì)講解一下各種類型的函數(shù)是如何影響上下文的變量對象以及每個(gè)函數(shù)的作用域鏈都包含什么,以及回答諸如像下面這樣的問題:下面聲明的函數(shù)有什么區(qū)別么2012-04-04JavaScript中異步與回調(diào)的基本概念及回調(diào)地獄現(xiàn)象
這篇文章主要介紹了JavaScript中異步與回調(diào)的基本概念,以及回調(diào)地獄現(xiàn)象,本文主要介紹了異步和回調(diào)的基本概念,二者是JavaScript的核心內(nèi)容,需要所有熱愛JS的小伙伴深入了解,需要的朋友可以參考下2022-07-07arcgis.js控制地圖地體的顯示范圍超出區(qū)域自動彈回(實(shí)現(xiàn)思路)
這篇文章主要介紹了arcgis.js控制地圖地體的顯示范圍超出區(qū)域自動彈回,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01