1.下载
npm i mockjs axios -D;
2.代码配置
2.1 mock文件夹index.js文件
const Mock = require('mockjs');
Mock.setup({
timeout: '200-600'
});
let configArray = [];
const files = require.context('.', true, /\.js$/);
files.keys().forEach((key) => {
if (key === './index.js') return;
configArray = configArray.concat(files(key).default);
});
configArray.forEach((item) => {
for (let [path, target] of Object.entries(item)) {
let protocol = path.split('|');
Mock.mock(new RegExp('^' + protocol[1]), protocol[0], target);
}
});
2.2 在app.js或main.js主文件中引入mock文件
import "../mock";
2.3 mock文件夹下创建mock1.js
const Mock = require('mockjs');
var Random = Mock.Random
let data=Mock.mock({
'rows|8': [{
key: '@guid',
name: '@cname',
'age|1-70': 56,
address: '@csentence',
'tags|1-2': ['@name']
}]
})
let data2=Mock.mock({
'rows|4': [{
key: '@guid',
name: '@cname',
'age|1-70': 56,
address: Random.csentence(),
'tags|1-2': ['@name']
}]
})
let articleList = {
code: 200,
msg: 'success',
data: {
total: 100,
rows:data.rows
}
};
let List = {
code: 200,
msg: 'ss',
data: {
total: 10,
rows:data2.rows
}
};
export default {
'get|/article/list': articleList,
'get|/article2/list': List,
}
2.4 mock文件夹下创建mock2.js
const Mock = require('mockjs')
const Random = Mock.Random
let Result = {
code: 200,
msg: '操作成功',
data: null
}
Mock.mock('/captcha', 'get', () => {
Result.data = {
token: Random.string(32),
captchaImg: Random.dataImage('120x40', 'p7n5w')
}
return Result
})
export default Mock.mock('/login', 'post', () => {
return Result
})
Mock.mock('/sys/userInfo', 'get', () => {
Result.data = {
id: "1",
username: "test",
avatar: "https://image-1300566513.cos.ap-guangzhou.myqcloud.com/upload/images/5a9f48118166308daba8b6da7e466aab.jpg"
}
return Result
})
Mock.mock('/logout', 'post', () => {
return Result
})
Mock.mock('/sys/menu/nav', 'get', () => {
let nav = [
{
name: 'SysManga',
title: '系统管理',
icon: 'el-icon-s-operation',
component: '',
path: '',
children: [
{
name: 'SysUser',
title: '用户管理',
icon: 'el-icon-s-custom',
path: '/sys/users',
component: 'sys/User',
children: []
},
{
name: 'SysRole',
title: '角色管理',
icon: 'el-icon-rank',
path: '/sys/roles',
component: 'sys/Role',
children: []
},
{
name: 'SysMenu',
title: '菜单管理',
icon: 'el-icon-menu',
path: '/sys/menus',
component: 'sys/Menu',
children: []
}
]
},
{
name: 'SysTools',
title: '系统工具',
icon: 'el-icon-s-tools',
path: '',
component: '',
children: [
{
name: 'SysDict',
title: '数字字典',
icon: 'el-icon-s-order',
path: '/sys/dicts',
component: '',
children: []
},
]
}
]
let authoritys = ['sys:user:list', "sys:user:save", "sys:user:delete"]
Result.data = {
nav: nav,
authoritys: authoritys
}
return Result
})
2.5 mock文件夹下创建mock3.js
import Mock from 'mockjs'
import url from 'url'
var data = Mock.mock({
"data|100":[
{
"id|+1":0,
"goodsName":"@ctitle(3, 5)",
"goodsPrice|+1":100,
"address":"@county(true)",
"tel":/^1(3|5|7|8|9)\d{9}$/,
"goodsImg":"@image('200x100', '#894FC4', '#FFF', 'alley')",
"date":'@date("yyyy-MM-dd M:dd:d")',
"email":"@email()",
"name":"@ctitle(10, 30)",
"text":"@cparagraph(1, 3)",
"my-word":"xxxxxxx@word(5, 30)",
"img":"@dataImage('200x100', 'Hello')",
"datetime":'@datetime("yyyy-MM-dd A HH:mm:ss")',
"string":'@string("lower", 5)',
"number|1-800":800,
"url":"@url",
"word":Mock.Random.cword(5,20),
"array|1-10": [
{
"name|+1": [
"Hello",
"Mock.js",
"!"
]
}
],
'dds':'caiyufu'
}
],
code:200,
message:'请求数据成功'
})
console.log(data,'ddw');
Mock.mock(/\goods\/goodsList/,"get",function(options){
let {limit,page} = url.parse(options.url,true).query;
return data.data.slice((page-1)*limit,(limit*page)-1)
})
export default Mock.mock('/postdata1','post',{
success: true,
message: '@cparagraph',
'list|1-5': [{
'sid|+1': 1,
'userId|5': '',
}]
})
2.6 使用axios调用接口
axios.get("/goods/goodsList", {
params: {
limit: 5,
page: 1
}
}).then((data) => {
console.log(data);
});
axios.post('/postdata1', {
params: {
name: 'jack'
}
})
.then((res) => {
console.log(res.data)
})
.catch((err) => {
console.log(err)
})
axios.get('/sys/menu/nav').then(res => {
console.log("/sys/menu/nav")
console.log(res)
})
axios.get('/article/list').then(res => {
console.log("/article/list")
console.log(res)
})
参考链接:
http://runxinzhi.com/enhengenhengNymph-p-15665564.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通