##RAP如何生成json数据##
1、页面添加mock规则;直接入库;
2、服务从db中获取对应的规则串,调用mock-min.js解析,生成数据返回给服务;
MockjsRunner.doRenderMockJsRule调用context.evaluateString直接执行mock-min.js,返回对应生成的结果;
3、服务讲回调函数的结果返回给前端;
##RAP如何添加规则##
mock-min.js中对Random.extend进行扩展:
Random.extend({ /*随机返回一个随机值,包含null,类型包括String,number,boolean*/ testRandom: function(){ /*随机数确定类型*/ var key = Number(Math.floor(Math.random()*10)+2); /*2~36随机长度字符串*/ var length = Math.floor(Math.random()*36)+1; var result; var flag=0; if(key>0 && key <=3){ flag=1; }else if(key>3 && key<=6){ flag=2; }else if(key>6 && key<=9){ flag=3 } switch(flag){ /*return String类型*/ case 1: result=Math.random().toString(length); break; /*return number类型*/ case 2: if(key==6){ result=0; }else{ var type = key%2 == 0 ? 1:-1; result=Math.random()* Math.pow(2,length) * type; } break; /*return boolean类型*/ case 3: result=key%2 == 0 ? true:false; break; /*return null*/ default: result=null; } return result; } });
###遇到的问题记录###
1、javascript的switch case中,case不支持表达式,只支持基础类型变量;
2、很久不写代码,连基本的判定表达式都写成了数学表达式,wtf;