前言:在我们实际开发中,前端和后端是同时进行开发的,我们不可能在开发的初期就要求后端立即写好接口,所以这个时候我们使用mockjs来模拟接口获取数据,这也是现在流行的开发模式,前后端分离
1.安装依赖
npm i -D mockjs
npm i -D json5
在vscode扩展中安装JSON5 syntax
2.新建mock文件夹且在文件夹新建index.js和userInfo.json5
index.js内容
const fs = require('fs')
const path = require('path')
const JSON5 = require('json5')
const Mock = require('mockjs')
function getJsonFile(filePath) {
var json = fs.readFileSync(path.join(__dirname, './userInfo.json5'), 'utf-8') //传入的文件
return JSON5.parse(json)
}
module.exports = function(app) {
app.get('/user/userinfo', function(rep, res) { //这里就是模拟请求地址
var json = getJsonFile('./userInfo.json5') //传入的文件
res.json(Mock.mock(json))
})
}
userInfo.json5内容(模拟的内容) 如果这里一直报错请检查自己的依赖和扩展是否安装成功
{
id:"@id()"
}
3.vue.config.js设置
module.exports = {
devServer: {
before: require('./src/mock')
}
}
4.until文件夹新建request.js api文件夹新建user.js
request.js里写
import axios from 'axios'
const service = axios.create({
baseURL: '',
timeout: 5000
})
export default service
user.js里写
import request from '@/util/request'
export function getUserInfo() {
return request({
url: '/user/userinfo'
})
}
5.在vue里调用
import { getUserInfo } from '../api/user'
export default {
data() {
return {
id: 0
}
},
async created() {
const res = await getUserInfo()
console.log(res)
}
}
最后就能看到模拟的结果了