mock
Mock
当前端工程师需要独立于后端并行开发时,后端接口还没有完成那么前端怎么获取数据?
这时可以考虑前端搭建web server自己模拟假数据,这里我们选第三方库mockjs用来生成随机数据拦截Ajax请求。
基本使用
安装mockjs:
cnpm install mockjs --save-dev
创建mock文件夹以及mock配置的js文件
方式一:直接创建随机数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const Mock = require('mockjs')
//随机生成id
let id = Mock.mock('@id')
console.log(id)
//随机生成对象
let obj = Mock.mock({
id: '@id()',//随机id
username: '@cname()',//随机生成中文名字
date: '@date()',//随机生成日期
avatar: "@image('200x200','red','#fff','avatar')",//生成图片,参数:size,background,foreground,text
description: '@paragraph()', //描述
ip: '@ip()', //ip地址
email: '@email()' //随机生成邮箱
})
console.log(obj)方式二:读取json文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21const fs = require('fs')
const path = require('path')
const JSON5 = require('json5')
const Mock = require('mockjs')
//读取JSON文件
function getJsonFile(filePath) {
var json = fs.readFileSync(path.join(__dirname, filePath), 'utf-8');
return JSON5.parse(json);
}
//返回一个函数
module.exports = function (devServer) {
//监听http请求
devServer.app.get('/user/userinfo', function (rep, res) {
//每次相应请求时获取mock data的json文件
var json = getJsonFile('./userInfo.json5');
//将json传入mock方法,生成的数据返回给浏览器
res.json(Mock.mock(json))
})
}配置vue.config.js
1
2
3
4
5devServer: {
// before: require('./mock'),在vuecli3中使用
//setupMiddlewares: require('./mock'),在vuecli5中使用
onBeforeSetupMiddleware: require('./mock/index')//引入mock/index.js
}当后端开发完成时,移除mock
编写环境配置文件env.development:
MOCK=true
并在mock文件夹下的index.js里面添加判断条件
if (process.env.MOCK == 'true')
移除只需要将环境配置文件的MOCK改为false即可
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 goMars的学习随记!
评论