MOCKJS常用语法_NODE的数据模拟_midway返回数据
2024-11-20 09:49:52
在中间层中需要使用数据模拟,现在可以使用MOCKJS来搭建
2419

常用语法

  1. Random.boolean() /( min, max, current ) 随机一个布尔值
  2. Random.natural()/( min?, max? ) 随机一个自然数(大于等于 0 的整数)
  3. Random.integer()/( min?, max? ) 随机一个整数(包含负数)
  4. Random.float()/( min?, max?, dmin?, dmax? ) 随机一个小数
  5. Random.character()/( pool? ) 随机一个字符
  6. Random.string() /( pool?, min?, max? )随机一个字符串
  7. Random.range()/( start?, stop, step? ) 随机一个整数数据的数组
  8. Random.date()/( format? ) 随机一个日期
  9. Random.time( format? ) 随机一个时间
  10. Random.datetime( format? ) 随机一个日期+时间
  11. Random.now( unit?, format? ) 返回当前的日期和时间字符串
  12. Random.image( size?, background?, foreground?, format?, text? ) 生成一个随机的图片地址
  13. Random.dataImage( size?, text? ) 生成一段随机的 Base64 图片编码
  14. Random.color() 随机一个16进制的颜色
  15. Random.hex()同理
  16. Random.rgb() 随机生成一个rgb格式的颜色
  17. Random.rgba() 随机生成一个rgba格式的颜色
  18. Random.hsl() 机生成一个hsl格式(色相、饱和度、亮度)的颜色
  19. Random.paragraph( min?, max? ) 随机生成一段文本
  20. Random.cparagraph( min?, max? ) 随机生成一段中文文本
  21. Random.sentence( min?, max? ) 随机生成一个句子,句子首字母大写
  22. Random.csentence( min?, max? ) 随机生成一段中文文本
  23. Random.word( min?, max? ) 随机生成一个单词 Random.cword( pool?, min?, max? ) 随机生成一个汉字
  24. Random.title( min?, max? ) 随机生成一个标题
  25. Random.ctitle( min?, max? ) 随机生成一句中文标题
  26. Random.first() Random.first()
  27. Random.last() 随机生成一个常见的英文姓
  28. Random.name( middle? ) 随机生成一个常见的英文姓名
  29. Random.cfirst() 随机生成一个常见的中文名
  30. Random.clast() 随机生成一个常见的中文姓
  31. Random.cname() 随机生成一个常见的中文姓名
  32. Random.url( protocol?, host? ) 随机生成一个 URL
  33. Random.protocol() 随机生成一个 URL 协议
  34. Random.domain() 随机生成一个域名
  35. Random.tld() 随机生成一个顶级域名
  36. Random.email( domain? ) 随机生成一个邮件地址
  37. Random.ip() 随机生成一个 IP 地址
  38. Random.region() 随机生成一个(中国)大区
  39. Random.province() 随机生成一个(中国)省(或直辖市、自治区、特别行政区)
  40. Random.city( prefix? ) 随机生成一个(中国)市
  41. Random.county( prefix? ) 随机生成一个(中国)县
  42. Random.zip() 随机生成一个邮政编码(六位数字)
  43. Random.capitalize( word ) 把字符串的第一个字母转换为大写
  44. Random.upper( str ) 把字符串转换为大写
  45. Random.lower( str ) 把字符串转换为小写
  46. Random.pick( arr ) 从数组中随机选取一个元素,并返回
  47. Random.shuffle( arr ) 打乱数组中元素的顺序,并返回
  48. Random.guid() 随机生成一个 GUID
  49. Random.id() 随机生成一个 18 位身份证
  50. Random.increment( step? ) 生成一个全局的自增整数(步值)
  51. Random.csentence( min?, max? )指定句子汉字个数的范围
  createMock(params) {
    /**
     * @description: 基于params对象生成mock数据
     * @param {*} obj
     * @return {*}
     */
    if (params && params instanceof Array && params.length > 0) {
      let _num = Random.natural(1, 10);
      let _arr = [];
      for (let i = 0; i < _num; i++) {
        _arr.push(this.createMock(params[0]));
      }
      return _arr;
    }


    let obj = {
      ...params,
    };
    let _obj = {};


    for (let key in obj) {
      // 排除数组的情况
      if (obj[key] instanceof Array) {
        //设置一个随机数
        let _num = Random.natural(1, 10);
        let _arr = [];
        for (let i = 0; i < _num; i++) {
          _arr.push(this.createMock(obj[key][0]));
        }
        _obj[key] = _arr;
      } else if (obj[key] instanceof Object) {
        //循环对象并赋值
        _obj[key] = this.createMock(obj[key]);
      } else {
        // 排除code与dessc
        if (['code', 'desc'].indexOf(key) < 0) {
          // 循环赋予规则
          switch (obj[key]) {
            case 'string':
              _obj[key] = /\w{20,30}/;
              break;
            case 0:
              _obj[key + '|1-100'] = 1;
              break;
            case 1:
              _obj[key + '|0-1'] = 1;
              break;
            case 2:
              _obj[key + '|0-2'] = 1;
              break;
            case 10:
              _obj[key + '|1-10'] = 1;
              break;
            case 'time':
              _obj[key] = '@datetime()';
              break;
            case 'address':
              _obj[
                key
              ] = Random.province()+Random.city()+Random.county();
              break;
            case 'name':
              _obj[key] = Random.cname();
              break;
            case 'email':
              _obj[key] = Random.email();
              break;
            case 'remark':
              _obj[key] = Random.cparagraph();
              break;
            case 'tel':
              _obj[key] = /\d{11}/;
              break;
            case 'regionCode':
              _obj[key] = '500112';
              break;
            default:
            _obj[key]=obj[key];
            break
          }
        }
      }
    }
    return _obj;
  }