mock數(shù)據(jù)_API路由調(diào)用本地?cái)?shù)據(jù)

在使用vue時(shí),當(dāng)我們?cè)诒镜啬Mapi調(diào)用服務(wù)器中的數(shù)據(jù)時(shí),假設(shè)我們本地的數(shù)據(jù)存放在一個(gè)data.json的數(shù)據(jù)文件中,我們要通過vue-resouce(或者使用axios)調(diào)用api的形式使用這個(gè)文件中數(shù)據(jù),我們可以使用node的路由Router來模擬路由調(diào)用。

在webpack項(xiàng)目中,內(nèi)設(shè)了node,我們可以在build文件夾下的dev-server.js中找到node的框架express,(dev-server.js是webpack的入口文件),通過express.Router()來定義路由。至于data.json這個(gè)文件,我們可以直接require(‘相對(duì)路徑/data.json’)獲取到這個(gè)文件下的全部數(shù)據(jù)對(duì)象。

具體例子如下:

在build -> dev-server.js進(jìn)行編寫

//1、引入data.json數(shù)據(jù)文件

var appData = require(‘相對(duì)路徑/data.json’);

//通過appData.xxx獲取到每個(gè)獨(dú)立的子對(duì)象

var objectA = appData.objectA;

var objectB = appData.objectB;

var objectC = appData.objectC;

//2、使用路由Router()

var apiRoutes = express.Router();

apiRoutes.get(‘/objectA’,function(req,res){

res.json({

type:0,

data:objectA

})

});

apiRoutes.get(‘/objectB’,function(req,res){

res.json({

type:0,

data:objectB

})

});

apiRoutes.get(‘/objectC’,function(req,res){

res.json({

type:0,

data:objectC

})

});

app.use(‘/api’,apiRoutes);//所有url以/api開始的,都會(huì)分配到apiRoutes這個(gè)對(duì)象中

如果我們直接在瀏覽器url中訪問這個(gè)localhost:8080/api/objectA就會(huì)返回請(qǐng)求的數(shù)據(jù)(json格式),但瀏覽器并不能格式化json格式,所以當(dāng)我們使用Google的chrome瀏覽器,我們可以安裝它的插件來格式化json數(shù)據(jù)(jsonview插件)。

前面我們?cè)O(shè)定好了路由,接下來,我們就是使用路由,vue以前是使用vue-resouce來訪問服務(wù)器的,但在vue2.0之后,停止了更新vue-resouce,轉(zhuǎn)而使用axios插件,對(duì)于axios我在這里不多說,我就說一下使用vue-resouce,它非常易上手,官方文檔詳細(xì)。

我們可以使用this.$http.get(‘/api/objectA’).then((response) => {

//第一個(gè)函數(shù)是成功的返回函數(shù)

response= response.body();

if(response.type=0){

this.objectA = response.objectA

}

},(err) => {

//第二個(gè)是失敗的返回函數(shù)

})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容