MOCKJS常用语法_NODE的数据模拟_midway返回数据
2024-11-20 09:49:52
在中间层中需要使用数据模拟,现在可以使用MOCKJS来搭建
2419
常用语法
- Random.boolean() /( min, max, current ) 随机一个布尔值
- Random.natural()/( min?, max? ) 随机一个自然数(大于等于 0 的整数)
- Random.integer()/( min?, max? ) 随机一个整数(包含负数)
- Random.float()/( min?, max?, dmin?, dmax? ) 随机一个小数
- Random.character()/( pool? ) 随机一个字符
- Random.string() /( pool?, min?, max? )随机一个字符串
- Random.range()/( start?, stop, step? ) 随机一个整数数据的数组
- Random.date()/( format? ) 随机一个日期
- Random.time( format? ) 随机一个时间
- Random.datetime( format? ) 随机一个日期+时间
- Random.now( unit?, format? ) 返回当前的日期和时间字符串
- Random.image( size?, background?, foreground?, format?, text? ) 生成一个随机的图片地址
- Random.dataImage( size?, text? ) 生成一段随机的 Base64 图片编码
- Random.color() 随机一个16进制的颜色
- Random.hex()同理
- Random.rgb() 随机生成一个rgb格式的颜色
- Random.rgba() 随机生成一个rgba格式的颜色
- Random.hsl() 机生成一个hsl格式(色相、饱和度、亮度)的颜色
- Random.paragraph( min?, max? ) 随机生成一段文本
- Random.cparagraph( min?, max? ) 随机生成一段中文文本
- Random.sentence( min?, max? ) 随机生成一个句子,句子首字母大写
- Random.csentence( min?, max? ) 随机生成一段中文文本
- Random.word( min?, max? ) 随机生成一个单词 Random.cword( pool?, min?, max? ) 随机生成一个汉字
- Random.title( min?, max? ) 随机生成一个标题
- Random.ctitle( min?, max? ) 随机生成一句中文标题
- Random.first() Random.first()
- Random.last() 随机生成一个常见的英文姓
- Random.name( middle? ) 随机生成一个常见的英文姓名
- Random.cfirst() 随机生成一个常见的中文名
- Random.clast() 随机生成一个常见的中文姓
- Random.cname() 随机生成一个常见的中文姓名
- Random.url( protocol?, host? ) 随机生成一个 URL
- Random.protocol() 随机生成一个 URL 协议
- Random.domain() 随机生成一个域名
- Random.tld() 随机生成一个顶级域名
- Random.email( domain? ) 随机生成一个邮件地址
- Random.ip() 随机生成一个 IP 地址
- Random.region() 随机生成一个(中国)大区
- Random.province() 随机生成一个(中国)省(或直辖市、自治区、特别行政区)
- Random.city( prefix? ) 随机生成一个(中国)市
- Random.county( prefix? ) 随机生成一个(中国)县
- Random.zip() 随机生成一个邮政编码(六位数字)
- Random.capitalize( word ) 把字符串的第一个字母转换为大写
- Random.upper( str ) 把字符串转换为大写
- Random.lower( str ) 把字符串转换为小写
- Random.pick( arr ) 从数组中随机选取一个元素,并返回
- Random.shuffle( arr ) 打乱数组中元素的顺序,并返回
- Random.guid() 随机生成一个 GUID
- Random.id() 随机生成一个 18 位身份证
- Random.increment( step? ) 生成一个全局的自增整数(步值)
- 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; }