环境仿真 - 返回模拟数据 ¶
作者:KK
发表日期:2016.6.24
在gulpfile.js相同目录下创建一个mock-data
目录,里面放一个user-info.json.js
,写上这样的代码:
module.exports = {
id : 111,
name : 'Jay',
age : 18,
add_time : '2012-12-12 12:12:12'
};
前端页面添加如下ajax代码:
$.get('/user-info.json', function(data){
alert(data.name + data.age + '岁');
});
访问http://127.0.0.1/页面
把它运行起来,于是就成功请求到了数据
解释 ¶
请求xxx.json的时候,mock服务器会去mock-data目录下找这个xxx.json.js
,后面会附加个.js后缀
其实就算你在dist目录下放一个user-info.json,里面直接写{age:18}
,也是能请求到,只是这样不是很好,因为整个dist目录都可以打包发布的,如果多了些json文件的话一是有干扰,二是又要排除,比较麻烦,还是提议放去mock-data里面,因为在mock-data里是JS代码,可以做数据计算
何时会调用mock-data的数据? ¶
很简单,当请求一个dist目录下不存在的文件时就会跑去mock-data目录找,所以我通常请求"/login.do"去读取"mock-data/login.do.js"的返回值
请求"/user/add.php"去读取"mock-data/user/add.php.js"的返回值
模拟数据要赋值到module.exports
¶
就像上面演示的模拟数据一样,要执行
module.exports = 数据;
这里的数据可以是数组也可以是对象,最终会被mock服务器转换成JSON字符串返回给浏览器
如果不向module.exports赋值则前端无法得到数据,比如你仅仅是这么写:
{
id : 111,
name : 'Jay',
age : 18,
add_time : '2012-12-12 12:12:12'
}
是没用的,我猜来看的读者多半是了解服务器的人,不会不知道这是咋回事~