MockJs批量生成随机JSON数据

一.

  • 将字符串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,
      }),
    );
  },
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值