Vue-cli 使用json server在本地模擬請求數據

寫在前面:

開發的時候,先後端不管是否分離,接口多半是滯後於頁面開發的。因此創建一個REST風格的API接口,給前端頁面提供虛擬的數據,是很是有必要的。json server 做爲模擬工具,由於設置簡單,容易上手。本文是作一個簡單的上手介紹,有須要的朋友能夠作一下參考,喜歡的能夠點波贊,或者關注一下,但願能夠幫到你們。html

本文首發於個人我的blog:obkoro1.com前端

json server 工具:

在後臺還沒給接口以前,使用JSON-Server搭建一臺JSON服務器,將接口要返回的數據放在json文件裏面。而後請求這些數據,這樣咱們能夠先作一些東西,等後臺接口好了以後直接替換就能夠了,沒必要一直傻傻的等後端的接口。vue

安裝:

npm install json-server --save //json server
    npm install axios --save //使用axios發送請求複製代碼

json文件:

建立一個json文件,起名叫db.json,文件放置在跟index.html平級的目錄中,也能夠放置在static文件夾中,db.json文件裏面的內容,是一個對象。ios

設置:

位置: build/dev-server.jsgit

//json-server 假數據
    var jsonServer = require('json-server') //引入文件
    var apiServer = jsonServer.create(); //建立服務器
    var apiRouter = jsonServer.router('db.json') //引入json 文件 ,這裏的地址就是你json文件的地址
    var middlewares = jsonServer.defaults(); //返回JSON服務器使用的中間件。
    apiServer.use(middlewares)
    apiServer.use('/json',apiRouter)
    apiServer.listen( port + 1,function(){ //json服務器端口:好比你使用8080,這裏的json服務器就是8081端口
      console.log('JSON Server is running')  //json server成功運行會在git bash裏面打印出'JSON Server is running'
    })複製代碼

如圖所示:github

請求接口代理:

proxyTable: {
  '/api': {
    target: 'http://localhost:8081/',  // 經過本地服務器將你的請求轉發到這個地址
    changeOrigin: true,  // 設置這個參數能夠避免跨域
    pathRewrite: {
      '/api': '/'
    }
  },
},複製代碼

以下圖所示:ajax

npm run dev啓動項目能夠訪問到你的json文件:

如今服務器已經成功啓動,在地址欄輸入 localhost:8081,就能夠看到的json文件,加上相應後綴便可訪問文件裏面的數據。下面幾張圖片出自:biubiubiuzzzvue-cli

jsonserver服務器:npm

jsonserver服務器
jsonserver服務器

json數據:
json

json數據
json數據

axios請求json數據:

光看到這些數據可不行,咱們還須要發起請求,請求到這些數據,而後執行各類各樣的騷操做。

main.js文件中:

import axios from 'axios';//引入文件
Vue.prototype.$ajax = axios;//將axios掛載到Vue實例中的$ajax上面,在項目中的任何位置經過this.$ajax使用複製代碼

在組件中的使用方式,好比:

this.$ajax({
       url:'/api/articles',//api 代理到json文件地址,後面的後綴是文件中的對象或者是數組
       method:'get',//請求方式
       //這裏能夠添加axios文檔中的各類配置
     }).then(function (res) {
       console.log(res,'成功');
     }).catch(function (err) {
       console.log(err,'錯誤');
     })
//還能夠像下面這麼簡寫
  this.$ajax.get('api/publishContent').then((res) => {
   console.log(res,'請求成功')
  },(err)=>{
    console.log(err,'請求失敗');
  });複製代碼

JSON-Server只接受GET請求,GitHub上提到:

If you make POST, PUT, PATCH or DELETE requests, changes will be automatically and safely saved to db.json using lowdb.

lowdb介紹: www.jianshu.com/p/11d04a4c2…

文檔:

附上json server的github,和axios的中文文檔,你們能夠進去研究一下。

json server設置和使用起來仍是蠻方便的,你們感興趣的話,能夠跟着文章設置一波。

最後:如需轉載,請放上原文連接並署名。碼字不易,感謝支持!本人寫文章本着交流記錄的心態,寫的很差之處,不撕逼,可是歡迎指點。而後就是但願看完的朋友點個喜歡,也能夠關注一下我。
blog網站 and 掘金我的主頁

以上2017.11.1

參考資料:

JSON-Server使用
vue-cli下配置json-server

相關文章
相關標籤/搜索