# 在 Ng-alain 中使用 mock

# 在 ng-alain 中安装 mockjs

与其他项目一致,直接使用 npm/pnpm/yarn 安装即可。

# 在 mock 文件中使用 mockjs

最基本的 ng-alain 中 mock 文件写法规范,可以参考文档。 https://ng-alain.com/mock/getting-started/zh 其中,数据部分可以使用 mockjs 来模拟数据。

'POST /list': Mock.mock({
  code: 0,
  msg: '',
  'data|5-10': [
    {
      'id|+1': 1,
      name: () => Random.cname()
    }
  ],
  traceMessage: ''
})

如以上代码所示,这里是一个通用模板所用的 list 接口,接口为 post 请求,该请求会返回一个 mock 数据。其中字段 data 使用了 mock 的语法,语法可以在 mock 文档参考。 http://mockjs.com/examples.html

# 综合讨论

这里列举一些使用的技巧或者规范,尽可能利用 mockjs 的优势,来让开发工作的效率提升,减少代码复杂度。

# 学会使用生成规则

//bad
{
  data: Array.from({ length: 8, (v, i) => i).map(i => ({
    id: i + 1,
  }))
}

//good
{
  'data|8': [
    {
      'id|+1': 1
    }
  ]
}

# 学会使用列表生成状态值

//bad
{
  auditStatus: `${Math.round(Math.random() * 3)}`
}

//good
{
  "auditStatus|1": ["0","1","2","3"],
  "auditStatusDesc|1": ["已申请","未审核","已审核","已驳回"]
}

# 学会使用正则生成特殊数据

//bad
{
  phone: () => `18${Math.round(Math.random() * 10000000) + 100000000}`;
}

//good
{
  phone: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
}

注意

常见正则表达式都可通过搜索得到。

发布日期: 4/18/2023, 6:04:25 AM