一.
- 将字符串url转换为正则匹配
- 转正则的原因:如果url是字符串类型,默认会完全匹配mock地址与应用请求地址,参数不同也会造成mock失效 解决方式就是使用正则匹配
- 返回正则匹配规则
function regUrl(url){
let urlStr = baseUrl() + url + '.*'
return RegExp(urlStr)
}
let Random = Mock.Random;//随机对象
Random.datetime('yyyy-MM-dd hh:mm:ss') //格式化日期
Random.province()//省
Random.city()//市
Random.country()//区县
Mock.mock(regUrl('http://www.lihefei.com/api/test?name=lihefei'),/get|post/i,{
code:0,
msg:'Mock接口模拟数据',
'data|30':[
{
'direction|0-359':0,//角度0-359
gpsTime:'@datetime',//中线格式的日期
'postType|1':['GPS','LBS','WIFI'],
bd:{
'latitude|-90-90.2-6':119.789456,//全球经度
'longitude|-180-180.2-6':24.12345,//全球纬度
},
address:'@province@city@country' //省市县地址
}
]
})
实例二:
var Random = Mock.Random;
Random.date()
var dateMock = Mock.mock({
'list|6':[{
'simCar|13000000000-19900000000':1440191734422,
'operator|1':[
'移动',
'联通',
'电信'
],
'packageName|1':[
'5元30M',
'10元500M',
'50元100G'
],
validityPeriod:'@date',
'unitPrice|5-10':5,
'quantity|10-30':12,
'amount|1-100':60,
'imei|8000000000000-9000000000000':8681120203709164,
user:'test'
}]
})
实例二的结果
{
"list": [
{
"simCar": 14514939551,
"operator": "电信",
"packageName": "10元500M",
"validityPeriod": "1975-06-02",
"unitPrice": 8,
"quantity": 29,
"amount": 22,
"imei": 890030819391592,
"user": "test"
},
{
"simCar": 19110928665,
"operator": "电信",
"packageName": "50元100G",
"validityPeriod": "2003-08-10",
"unitPrice": 9,
"quantity": 23,
"amount": 38,
"imei": 801251309400261,
"user": "test"
},
{
"simCar": 13888834166,
"operator": "联通",
"packageName": "5元30M",
"validityPeriod": "2008-05-10",
"unitPrice": 5,
"quantity": 22,
"amount": 39,
"imei": 884055425949977,
"user": "test"
},
{
"simCar": 18931203845,
"operator": "联通",
"packageName": "10元500M",
"validityPeriod": "2018-01-09",
"unitPrice": 5,
"quantity": 23,
"amount": 80,
"imei": 852828152985024,
"user": "test"
},
{
"simCar": 15904304760,
"operator": "移动",
"packageName": "5元30M",
"validityPeriod": "1999-09-16",
"unitPrice": 9,
"quantity": 16,
"amount": 28,
"imei": 865702567049672,
"user": "test"
},
{
"simCar": 18074045598,
"operator": "移动",
"packageName": "10元500M",
"validityPeriod": "1996-12-06",
"unitPrice": 9,
"quantity": 19,
"amount": 35,
"imei": 887540376467915,
"user": "test"
}]
}
项目中使用
import { Request, Response } from 'express';
import mockjs from 'mockjs';
export default {
'GET /get/complaint/advice': (req: Request, res: Response) => {
res.send(
mockjs.mock({
'data|100': [
{
'id|1-100': 50,
typeName: '@name',
describe: '@province@city@county',
'status|1': ['normal', 'error'],
},
],
current: 1,
success: true,
total: 100,
}),
);
},
};