一、始由
在前端开发中,很大一部分工作都是将后台数据获取到后展示在前端界面上。如果接口是现成的,这个过程还相对容易一些,但是如果接口的开发和前端开发是同时进行的,在仅仅有接口文档并无测试环境的情况下,前端开发者就要痛苦了,所得非所见的盲写方式不但效率低下,也有很大的遗漏风险。如果我们有办法自己根据接口文档模拟这些数据,那开发过程中的体验就会好很多了。幸运的是,通过node.js,express和mock.js,我们可以非常容易的进行数据Mock。
二、准备工作
1.node.js
首先你需要安装node.js,node.js是一个JavaScript运行环境,在其官网可以十分方便的进行下载安装:http://nodejs.cn/。
2.express
express是一个基于Node平台的Web开发框架,使用它可以十分方便的搭建本地的web服务,用来部署我们的Mock数据,express可以通过npm来进行安装,官网如下:http://www.expressjs.com.cn/。其中的详细的安装方法。
3.mock.js
mock.js是一个模拟数据结构,生成随机数据的js库。其有一套语法规则用来模拟结构和生成数据。其官网如下,安装过程也十分简单:http://mockjs.com/。
三、Mock.js语法规则及范例
对于Mock数据,最重要的是掌握和灵活运用Mock.js的语法规则,能够熟练的编写出Mock数据结构必备的技能。在Mock.js中,语法规则主要分为两块:数据模板和数据占位符。
1.数据模板
数据版本主要的作用是用来生成数据结构。数据模板的组成由如下三部分:属性名,生成规则和属性值。在语法上的结构如下:
属性名|生成规则:属性值
最简单的数据模板是不使用生成规则,直接用字面量来表示,代码如下:
{
name:'珲少'
}
生成的mock数据如下所示:
对于模拟字符串类型的数据,有两种模板可以定义:
模板1:'属性名|min-max':属性值
通过重复一个字符串min到max次之间来生成数据。示例:
{
'name|1-10':'珲少'
}
生成的mock数据如下:
模板2:'属性名|count':属性值
通过重复一个字符串count次来生成数据。示例:
{
'name|1-10':'珲少',
'moreName|10':'珲少'
}
生成数据如下图所示:
对于模拟数值类型的数据,有3种模板可以定义:
模板1:'属性名|+1':属性值
属性值自动自增,示例如下:
{
'array|1-10':[
{
'name|1-10':'珲少',
'moreName|10':'珲少',
'id|+1':0
}
]
}
生成数据如下图所示:
模板2:'属性名|min-max':属性值
生成在min到max之间的整数,代码如下:
{
'array|1-5':[
{
'name|1-10':'珲少',
'moreName|10':'珲少',
'id|+1':0,
'age|20-25':20
}
]
}
效果如下图所示:
模板3:'属性名|min-max.dmin-dmax':属性值
生成浮点数,整数部分在min到max之间,小数部分保留dmin到dmax位,示例如下:
{
'array|1-5':[
{
'name|1-10':'珲少',
'moreName|10':'珲少',
'id|+1':0,
'age|20-25':20,
'weight|60-70.1-4':60
}
]
}
生成数据如下: