摘要:在其的下面增加以下代碼代碼為在根目錄下創(chuàng)建存放模擬的數(shù)據(jù)文件我命名為,名字可以根據(jù)自己口味定義,但是要跟第一步的配置依賴要一樣。數(shù)據(jù)存放文件也需要更改為為請(qǐng)求的地址,為查詢數(shù)據(jù)的入口請(qǐng)求請(qǐng)求歐了
早期在vue構(gòu)建工程文件在build里面有dev-server.js,但是后來構(gòu)建去除了該文件集成到了webpack的webpack.dev.conf.js里面。 在項(xiàng)目制作過程中,作為一個(gè)前端,總不能時(shí)刻去調(diào)用后端的接口,需要模擬本地進(jìn)行訪問,于是總結(jié)一下模擬訪問這里面的坑,希望對(duì)大家有幫助。
1.打開build下面的webpack.dev.conf.js文件進(jìn)行配置不多說 直接上代碼:
代碼為:
var glob = require("glob"); const express = require("express") const app = express() var apiRoutes = express.Router() var appData = require("../data/config") var getApi= appData["get"];//所有的get請(qǐng)求 var postApi= appData["post"];//所有的post請(qǐng)求 //查找所有的json文件 var entryJS = {}; entryJS = glob.sync("./data/**/*.json").reduce(function (prev, curr) { prev[curr.slice(7)] = "."+curr; return prev; }, {}); //合并所有的json文件到一個(gè)json中 let jsonData={}; for (var i in entryJS){ let data = require(entryJS[i]); jsonData = Object.assign(jsonData, data); } app.use("/", apiRoutes)
以上為第一個(gè)配置,具體引用是做什么的,大家可以自己百度下相關(guān)。
2.還是上述文件找到devServer對(duì)象。在其watchOptions的下面增加以下代碼:
代碼為:
before (app) { //get for(var i = 0;i < getApi.length; i++){ var getData = jsonData[getApi[i].key]; app.get(getApi[i].url, function (req, res) { res.json(getData); }); } //post for(var i = 0;i < postApi.length; i++){ var postData = jsonData[postApi[i].key]; app.post(postApi[i].url,function (req, res) { res.json(postData); }); } }3.在根目錄下創(chuàng)建存放模擬的數(shù)據(jù)文件
我命名為data,名字可以根據(jù)自己口味定義,但是要跟第一步的配置依賴要一樣。
4.在data下面創(chuàng)建一個(gè)config.js目的是引入入口url就是訪問到后端接口地址,如果后端新加接口,在這里配置下入口,再新建一個(gè)json文件就妥妥的了。
5.下面這兩個(gè)是模擬數(shù)據(jù)到這個(gè)時(shí)候,npm run dev 后在瀏覽器里面輸入接口地址應(yīng)該可以打開了,如圖:
有點(diǎn)小激動(dòng)。但是還要完善后面的工作,這只是把服務(wù)搭好了,還要訪問呢。
訪問也是有步驟的:在這里我用的是node的axios,沒有用vue-axios,因?yàn)檫@個(gè)算是個(gè)插件,沒必要用。在main.js里面增加:
import axios from ‘a(chǎn)xios’ Vue.prototype.$http = axios
然后使用就可以了
created () { // this.$http.get("/api/seller", { this.$http.post("/api/goods", { params: { appkey: "appkey", pagenum: 1, pagesize: 20, sort: "addtime" } }).then((res) => { console.log(res.data) }).catch((err) => { console.error(err) }) }
整體就OK了,預(yù)祝開發(fā)大吉。
其實(shí)之前還有個(gè)坑,就是新版引入.CSS文件報(bào)錯(cuò),老提示找不到postcss之類的,如圖
Failed to compile. ./node_modules/css-loader?{“sourceMap”:false}!./node_modules/postcss-loader/lib?{“sourceMap”:false}!./node_modules/element-ui/lib/theme-chalk/index.css Module build failed: Error: No PostCSS Config found in: /Users/liliang/workspace/zyb/teacher-ui-basic/node_modules/element-ui/lib/theme-chalk at Error (native) at /Users/liliang/workspace/zyb/teacher-ui-basic/node_modules/postcss-load-config/index.js:51:26 @ ./node_modules/element-ui/lib/theme-chalk/index.css 4:14-124 13:3-17:5 14:22-132 @ ./src/main.js @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js
其實(shí)這個(gè)挺坑爹的,根據(jù)錯(cuò)誤是根本沒有辦法解決的,后來,查詢文檔,最終解決了。
解決辦法:在根目錄下面增加一個(gè)文件:postcss.config.js
如圖:
文件內(nèi)容為:
module.exports = { plugins: [ require(‘a(chǎn)utoprefixer’)() ]}
自己安裝下上面的依賴:
npm install autoprefixer –save-dev
然后再次重啟服務(wù),如果不OK,你心里罵我就好。
大功告成。
===============
經(jīng)過項(xiàng)目后來的運(yùn)用,又優(yōu)化了下模擬數(shù)據(jù)請(qǐng)求:直接上代碼(其他都不變)
//new start let glob = require("glob"); const express = require("express"); const app = express(); let apiRoutes = express.Router() let appData = require("../data/config"); let getApi = appData["get"];//所有的get請(qǐng)求 let postApi = appData["post"];//所有的post請(qǐng)求 //查找所有的json文件 let entryJS = {}; entryJS = glob.sync("./data/**/*.json").reduce(function (prev, curr) { prev[curr.slice(7)] = "." + curr; return prev; }, {}); //合并所有的json文件到一個(gè)json中 let jsonData = {}; for (let i in entryJS) { let data = require(entryJS[i]); jsonData = Object.assign(jsonData, data); } app.use("/", apiRoutes); //new end第二部分
//new start before(app) { //get 第三版 for (let i in getApi) { app.get(getApi[i], function (req, res) { res.json(jsonData[i]); }); } for (let j in postApi) { app.post(postApi[j], function (req, res) { res.json(jsonData[j]); }); } } //new end
以上代碼是webpack.dev.conf.js里配置。數(shù)據(jù)存放文件也需要更改為:
var data = { // url為請(qǐng)求的地址,key為查詢數(shù)據(jù)的入口 // get請(qǐng)求Api get: { seller: "/api/seller", goods: "/api/goods", tableList: "/api/tableList", strategyDetail: "/miscourse/shelfstrategy/shelfstrategydetail" }, // post請(qǐng)求Api post: { goods: "/api/goods", strategyEdit: "/miscourse/shelfstrategy/shelfstrategyupdate", strategyAdd: "/miscourse/shelfstrategy/shelfstrategycreate", uploadfileimg: "/course/api/uploadfileimg" } }; module.exports = data;
歐了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://hztianpu.com/yun/92292.html
摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...
摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...
摘要:從之前黃軼老師的高仿外賣開始接觸過這個(gè)滾動(dòng)庫(kù),感覺體驗(yàn)感很好,用起來也比較順手,所以在后來的項(xiàng)目聯(lián)系中就一直在使用。 前言 雖然在此之前已經(jīng)有類似的仿豆瓣電影的webapp,但或是開發(fā)的有些簡(jiǎn)潔功能不太完善,或是體驗(yàn)感覺得可以再完善下,所以自己摸索著對(duì)比豆瓣和豆瓣電影兩款app做了一下,初步滿足了自己的想法,經(jīng)過幾次完善基本不會(huì)出現(xiàn)bug,如果發(fā)現(xiàn)存在問題請(qǐng)告訴我修改,謝謝! 2017...
閱讀 1048·2021-11-22 12:04
閱讀 2239·2021-11-02 14:46
閱讀 778·2021-08-30 09:44
閱讀 2234·2019-08-30 15:54
閱讀 870·2019-08-29 13:48
閱讀 1739·2019-08-29 12:56
閱讀 3619·2019-08-28 17:51
閱讀 3410·2019-08-26 13:44