摘要:官方地址使用可全局安裝,也可針對(duì)項(xiàng)目安裝。可用開(kāi)啟服務(wù)。數(shù)據(jù)文件格式如下讓讀書(shū)點(diǎn)燃?jí)粝氲攸c(diǎn)濱江星耀城讓讀書(shū)點(diǎn)燃?jí)粝氲攸c(diǎn)濱江星耀城仿京東購(gòu)物車(chē)仿京東購(gòu)物車(chē)修改里面的命令。
在前端開(kāi)發(fā)中,如果后端接口還沒(méi)有提供,前端拿不到數(shù)據(jù),可能就沒(méi)法繼續(xù)寫(xiě)一些交互行為的代碼。這一問(wèn)題可通過(guò)json-server來(lái)很好地解決。本文主要講如何將json-server和webpack進(jìn)行整合,基于vue-webpack-boilerplate。
json-server官方地址
使用1.可全局安裝json-server,也可針對(duì)項(xiàng)目安裝。這里是全局安裝json-server。
npm install json-server -g
2.安裝完成后,可以在任一目錄下建立一個(gè) xxx.json 文件。這里是在src的同級(jí)目錄新建文件夾mock,在該文件夾內(nèi)新增文件db.json,文件內(nèi)容格式如下:
{ activitys: [ { "id": 1, "url": "/static/actimg1.jpg", "desc": "讓讀書(shū)點(diǎn)燃?jí)粝?, "place": "地點(diǎn):濱江星耀城", "time": "2017-5-10" }, { "id": 2, "url": "/static/actimg1.jpg", "desc": "讓讀書(shū)點(diǎn)燃?jí)粝?, "place": "地點(diǎn):濱江星耀城", "time": "2017-5-10" } ], blogs: [ { "id": 1, "avatarUrl": "/static/bloglistimg1.jpg", "name": "張三", "grade": "資深前端工程師", "slogan": "學(xué)習(xí)、分享,共同進(jìn)步,只有堅(jiān)持才能獲得最后的成功" }, { "id": 2, "avatarUrl": "/static/bloglistimg1.jpg", "name": "張三", "grade": "資深前端工程師", "slogan": "學(xué)習(xí)、分享,共同進(jìn)步,只有堅(jiān)持才能獲得最后的成功" } ] }
3.為了便于之后接入后臺(tái) API,所以需要進(jìn)行代理。在config/index.js文件內(nèi)增加proxyTable(即圖中紅線(xiàn)框出來(lái)的部分)。圖中將所有以/api開(kāi)頭的請(qǐng)求委托給http://localhost:3000 ,即請(qǐng)求/api/activitys/1相當(dāng)于是請(qǐng)求http://localhost:3000/activitys/1。該參數(shù)配置詳解見(jiàn)這里
4.在package.json的scripts內(nèi)新增兩行命令。
"mock": "json-server mock/db.json " "mockdev": "npm run mock | npm run dev"
可用npm run mock開(kāi)啟json-server服務(wù)。成功開(kāi)啟見(jiàn)下圖:
也可使用npm run mockdev直接運(yùn)行mock和dev命令。
5.在其他頁(yè)面可通過(guò)/api/XXX/獲取數(shù)據(jù)。
存在的問(wèn)題若是要模擬的接口非常多,都往db.json里面添加的話(huà),會(huì)導(dǎo)致這個(gè)文件變得非常龐大,難以維護(hù)。而且其他前端人員也會(huì)修改到這個(gè)文件,每次合并代碼都要考慮沖突問(wèn)題。
解決方案每個(gè)人各自建立自己模塊的數(shù)據(jù)文件,最終通過(guò)代碼將多個(gè)數(shù)據(jù)文件合并為一個(gè)文件。
1.在mock/下新建server.js,該文件用于將各數(shù)據(jù)文件內(nèi)的數(shù)據(jù)合并后統(tǒng)一輸出。內(nèi)容如下:
const fs = require("fs") const path = require("path") const MOCK_DIR = path.resolve(__dirname, "test") const walk = dir => { let results = [] let list = fs.readdirSync(dir) list.forEach(function (file) { file = dir + "/" + file let stat = fs.statSync(file) if (stat && stat.isDirectory()) { results = results.concat(walk(file))//若file是文件夾,則遍歷獲取該文件夾下文件內(nèi)數(shù)據(jù)。 } else if (path.extname(file) === ".js") { results.push(file) } }) return results } const files = walk(MOCK_DIR) let db = {} files.forEach(function (file) { Object.assign(db, require(file)) }) module.exports = function () { return db }
2.在mock/下新增test文件夾,各前端人員可自行在test/下新增數(shù)據(jù)文件(xx.js)和文件夾。數(shù)據(jù)文件格式如下:
module.exports = { activitys: [ { "id": 1, "url": "/static/actimg1.jpg", "desc": "讓讀書(shū)點(diǎn)燃?jí)粝?, "place": "地點(diǎn):濱江星耀城", "time": "2017-5-10" }, { "id": 2, "url": "/static/actimg1.jpg", "desc": "讓讀書(shū)點(diǎn)燃?jí)粝?, "place": "地點(diǎn):濱江星耀城", "time": "2017-5-10" } ], works: [ { "id": 1, "imgUrl": "/static/workslistimg1.jpg", "iconUrl": "/static/workslisticon1.jpg", "desc": "仿京東購(gòu)物車(chē)Vue.js" }, { "id": 2, "imgUrl": "/static/workslistimg1.jpg", "iconUrl": "/static/workslisticon1.jpg", "desc": "仿京東購(gòu)物車(chē)Vue.js" } ] }
3.修改package.json里面的mock命令。--m mock/post-to-get.js表示添加運(yùn)行中間件。
"mock": "json-server mock/server.js --m mock/post-to-get.js",
上面代碼中的post-to-get.js文件用于將post請(qǐng)求轉(zhuǎn)為get請(qǐng)求。該文件內(nèi)容如下:
module.exports = (req, res, next) => { req.method = "GET" next() }
修改完成后,最終的文件結(jié)構(gòu)如下:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85053.html
摘要:一什么是架構(gòu)即的縮寫(xiě),我們把他翻譯為表述性狀態(tài)傳遞,是博士在年他的博士論文中提出來(lái)的一種軟件架構(gòu)風(fēng)格。是個(gè)無(wú)狀態(tài)的協(xié)議,所以狀態(tài)就保存在服務(wù)器端。只要少量的數(shù)據(jù)就可使用,支持和。同時(shí)支持,同時(shí)提供一系列的查詢(xún)方法如。 一、什么是RESTful架構(gòu)? REST即Representational State Transfer的縮寫(xiě),我們把他翻譯為表述性狀態(tài)傳遞,是Roy Fielding博...
摘要:今天發(fā)現(xiàn)了一個(gè)神器在他的幫助下可以在很短的時(shí)間內(nèi)搭建一個(gè)然后就可以讓前端在不依賴(lài)后端的情況下進(jìn)行開(kāi)發(fā)啦關(guān)于什么是設(shè)計(jì)指南阮一峰簡(jiǎn)單來(lái)說(shuō),是一個(gè)模塊,運(yùn)行服務(wù)器,你可以指定一個(gè)文件作為的數(shù)據(jù)源。更多屬性可以查看這里好啦,基本就是這樣啦, 今天發(fā)現(xiàn)了一個(gè)神器——json-server!在他的幫助下可以在很短的時(shí)間內(nèi)搭建一個(gè)Rest API, 然后就可以讓前端在不依賴(lài)后端的情況下進(jìn)行開(kāi)發(fā)啦!...
摘要:前面演示了如何安裝并運(yùn)行和使用第三方庫(kù)真實(shí)化模擬數(shù)據(jù)下面將展開(kāi)更多的配置項(xiàng)和數(shù)據(jù)操作。示例數(shù)據(jù)源元小總小把清保住影辦歷戰(zhàn)資和總由共先定制向向圓適者定書(shū)她規(guī)置斗平相。 前面演示了如何安裝并運(yùn)行 json server , 和使用第三方庫(kù)真實(shí)化模擬數(shù)據(jù) , 下面將展開(kāi)更多的配置項(xiàng)和數(shù)據(jù)操作。 配置項(xiàng) 在安裝好json server之后,通過(guò) json-server -h 可以看到如下配置項(xiàng)...
摘要:曹縣宣布昨日晚間登日成功長(zhǎng)江流域首次發(fā)現(xiàn)海豚支持黨中央決定抄寫(xiě)黨章勢(shì)在必行為了方便,再創(chuàng)建一個(gè)文件,寫(xiě)入然后使用到目錄下執(zhí)行命令,如果成功會(huì)出現(xiàn)你的電腦中文件夾所在目錄的路徑如果不成功請(qǐng)檢查文件的格式是否正確。 在開(kāi)發(fā)過(guò)程中,前后端不論是否分離,接口多半是滯后于頁(yè)面開(kāi)發(fā)的。所以建立一個(gè)REST風(fēng)格的API接口,給前端頁(yè)面提供虛擬的數(shù)據(jù),是非常有必要的。 對(duì)比過(guò)多種mock工具后,我最終...
摘要:秒內(nèi)無(wú)需編碼快速完成一個(gè)模擬的服務(wù)。這個(gè)服務(wù)主要是給那些需要快速的模擬原型后端接口的前端人員使用的安裝新建一個(gè)文件啟動(dòng)服務(wù)到這一步秒不到吧,一個(gè)完整的就基本完成了。 JSON Server 30秒內(nèi)無(wú)需編碼快速完成一個(gè)模擬的REST API服務(wù)。 這個(gè)服務(wù)主要是給那些需要快速的模擬原型后端接口的前端人員使用的 GitHub:https://github.com/typicode/j.....
閱讀 3010·2021-10-12 10:12
閱讀 3060·2021-09-22 16:04
閱讀 3294·2019-08-30 15:54
閱讀 2607·2019-08-29 16:59
閱讀 2915·2019-08-29 16:08
閱讀 874·2019-08-29 11:20
閱讀 3498·2019-08-28 18:08
閱讀 653·2019-08-26 13:43