安装
npm install mockjs --save-dev
语法与内置方法
官方文档:Mock
基础使用
新建mock文件夹下index.js
//mock生成数据与基础增删改查
import Mock from 'mockjs'
var allChannels = Mock.mock({
'channelsList|34': [{
"id": "@increment()",
"province": "@province()"
}]
})
Mock.mock('/api/get/allChannels', 'get', () => {
return {
retCode: '0000',
retData: allChannels
}
})
//查
Mock.mock(/\/api\/get\/channelsByProv/, 'get', (options) => {
const province = getQuery(options.url, 'prov')
const channels = allChannels.filter(item => item.province === province)
return {
retCode: '0000',
retData: channels
}
})
//增
Mock.mock('/api/add/channel','post', (options) => {
const obj = JSON.parse(options.body) //bodyparser
allChannels.push(Mock.mock({
'channelsList|34': [{
"id": "@increment()",
"province": obj.province
}]
}))
return {
retCode: '0000',
retData: allChannels
}
})
//删
Mock.mock('/api/delete/channel','post', (options) => {
const obj = JSON.parse(options.body)
const index = allChannels.findIndex(item => item.id === obj.id)
allChannels.splice(index,1)
return {
retCode: '0000',
retData: allChannels
}
})
//params --> obj
const getQuery = (url, name) => {
const index = url.indexOf('?')
if (index !== -1) {
const queryArr = url.slice(index + 1).split('&')
for (let i = 0; i < queryArr.length; i++) {
const item = queryArr[i].split('=')
if (item[0] === name) {
return item[1]
}
}
}
}
调用
axios.get('/api/get/channelsByProv?prov='+prov).then(res => {
if(res.data.retCode === '0000'){
//...
}
})