vue項目利用devserver使用mock產(chǎn)生模擬數(shù)據(jù)

  • 1.在vue項目根目錄下創(chuàng)建mock文件夾
    mock文件夾下,新建index.js
const fs = require('fs');
const path = require('path');
const Mock = require('mockjs');//mockjs 導入依賴模塊
const JSON5 = require('json5');
//讀取json文件
function getJsonFile(filePath) {
    //讀取指定json文件
    var json = fs.readFileSync(path.resolve(__dirname,filePath), 'utf-8');
    //解析并返回
    return JSON5.parse(json);
}

//返回一個函數(shù)
module.exports = function(app){
    //監(jiān)聽http請求
    app.get('/user/userinfo', function (rep, res) {
        //每次響應請求時讀取mock data的json文件
        //getJsonFile方法定義了如何讀取json文件并解析成數(shù)據(jù)對象
        var json = getJsonFile('./userInfo.json5');
        //將json傳入 Mock.mock 方法中,生成的數(shù)據(jù)返回給瀏覽器
        res.json(Mock.mock(json));
    });
}

  • 2.在項目根目錄下,新建vue.config.js
module.exports = {
    devServer: {
        before: require('./mock/index.js')//引入mock/index.js
    }
}
  • 3.發(fā)送AJAX請求
module.exports = function(app){
    if(process.env.MOCK == 'true'){
        //監(jiān)聽http請求
        app.get('/user/userinfo', function (rep, res) {
            //每次響應請求時讀取mock data的json文件
            //getJsonFile方法定義了如何讀取json文件并解析成數(shù)據(jù)對象
            var json = getJsonFile('./userInfo.json5');
            //將json傳入 Mock.mock 方法中,生成的數(shù)據(jù)返回給瀏覽器
            res.json(Mock.mock(json));
        });
    }
}
  • 4.優(yōu)化
    在項目根路徑新建.env.development
MOCK=true

完善mock\index.js

module.exports = function(app){
    if(process.env.MOCK == 'true'){
        //監(jiān)聽http請求
        app.get('/user/userinfo', function (rep, res) {
            //每次響應請求時讀取mock data的json文件
            //getJsonFile方法定義了如何讀取json文件并解析成數(shù)據(jù)對象
            var json = getJsonFile('./userInfo.json5');
            //將json傳入 Mock.mock 方法中,生成的數(shù)據(jù)返回給瀏覽器
            res.json(Mock.mock(json));
        });
    }
}

這樣就只有在development的狀態(tài)下才會使用mock

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

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

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