在vue-cli搭建的項目中增加后台mock接口


用vue-cli搭建一個前端開發環境確實是極其方便,在寫前端代碼肯定也是少不了需要調用后台提供的業務接口進行前后端交互,特別在敏捷開發中,前后端都要提前確定業務接口並進行打樁,在開發過程中基本是沒有現成的后台可以調用,基本上都是自己寫mock進行模擬。

在vue-cli搭建的項目中,框架上用的是express的web框架,要做一個mock是很方便的。

 

假設前端頁面上需要獲取所有的新聞列表,那么就需要mock一個能夠返回所有新聞列表數據的接口。

接下來就在項目中實現mock功能。

 

腳手架生成項目

執行命令用webpack模板生成一個名為vuestrap的項目(名字任意)

vue init webpack vue-mock-demo

 

在出現的各提示選項中,沒什么要求,為了方便,把不用的ESLint,unit tests,e2e都關掉(這些選項都隨意)。

復制代碼
? Project name vuestrap
? Project description A Vue.js project
? Author 省略
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No
復制代碼

選項選完,項目也就生成了。

 

執行命令,安裝腳手架創建的組件

npm install

 

創建mock

和build、config等文件夾同級創建一個mock文件夾。

為了要mock一個獲取新聞列表的數據接口,我們在mock文件夾下創建一個名為“router-news.js”的文件。

其中的內容為:

var express = require('express');
var router = express.Router();

//對所有新聞的get進行mock
router.get('/all', function(req, res, next) {
  //響應mock數據
  res.json([{
    title: 'news-title-1' ,
    content: 'news-content-1'
  },
  {
    title: 'news-title-2' ,
    content: 'news-content-2'
  }]);
});

module.exports = router;

這里的完整url應該是“/mock/news/all”,在這里只寫了“/all”子路徑。

 

在build/dev-server.js文件的頭部require區域,require上面寫的router。

var mockRouterNews = require('../mock/router-news')

 

最后,調用app.use將講url和router關聯。

app.use('/mock/news', mockRouterNews)

在這里,通過將url的拆分,可以明確的把url進行處理的模塊化,一種業務可以交給對應的router進行響應處理,在使用app.use關聯所有的router的地方也能看得很清楚。

注意:

使用app.use關聯url和router的代碼一定要放在對“connect-history-api-fallback”組件的app.use前,否則關聯的url會被攔截掉,不會被mock的router正確響應。

 

執行

在命令行中執行命令運行項目。

npm run dev

 

運行后,在瀏覽器的地址欄中補上mock的url並訪問,就能看到mock的數據了,很方便。

 

代碼

 

End

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM