lazy-mock

  lazy-mock 是基于koa2构建的,使用lowdb持久化数据到JSON文件。只需要简单的配置就可以实现和json-server差不多的功能,但是比json-server更加灵活,后期可配置性更强,完全可以模拟真实后端业务逻辑。

  lazy-mock默认包含了jwt实现的登录与登出,实现了基于RBAC模型的通用权限控制逻辑。具体可查看vue-quasar-admin。

Clone

git clone https://github.com/wjkang/lazy-mock.git

Install

npm install

Run

npm run start

使用Postman模拟登录功能

Use

下面通过模拟图书的增删改查 介绍lazy-mock的简单使用

修改codeGenerate/config/config.js:

export default {ApiServer:'http://localhost:3000',ServerRootPath:'G:/GitHubProject/lazy-mock',//serverRouteRelativePath:'/src/routes/',ControllerRelativePath:'/src/controllers/',ServiceRelativePath:'/src/services/',ModelRelativePath:'/src/models/',DBRelativePath:'/src/db/'
}

只需要修改ServerRootPath为当前项目的根目录。

接着修改codeGenerate/config/model.js:


var shortid = require('shortid')
var Mock = require('mockjs')
var Random = Mock.Random//必须包含字段id
export default {name: "book",Name: "Book",properties: [{key: "id",title: "id"},{key: "name",title: "书名"},{key: "author",title: "作者"},{key: "press",title: "出版社"}],buildMockData: function () {//不需要生成设为falselet data = []for (let i = 0; i < 100; i++) {data.push({id: shortid.generate(),name: Random.cword(5, 7),author: Random.cname(),press: Random.cword(5, 7)})}return data}
}

更多生成模拟数据的规则可看https://github.com/nuysoft/Mock

生成代码

确保之前npm run start的窗口还开着,打开新的命令行窗口,执行npm run code

复制src/routes/bookApiMap.txt某一行数据到Postman访问

get http://localhost:3000/book/get?id=
get http://localhost:3000/book/paged?pageIndex=&pageSize=&sortBy=&descending=&id=&name=&author=&press=
delete http://localhost:3000/book/del?id=
delete http://localhost:3000/book/batchdel?ids=[]
//不设置id则新增,否则为更新
post http://localhost:3000/book/save
{"id":"","name":"","author":"","press":"",}

请求头记得加上Authorization:Bearer token

token之前模拟登录获取的

## More

### 修改自动生成的代码格式

直接修改codeGenerate/serverTemplates 下文件

去掉接口需要授权访问的限制

去掉scr/app.js 里的.use(jwt({ secret: publicKey }).unless({ path: [/^\/public|\/auth\/login|\/assets/] }))

修改接口返回格式

修改src/lib/responseTemplate.js

修改路由

修改src/routes 下文件

添加更多业务逻辑

主要修改src/services下文件,具体可参考memuService.js

使用权限控制逻辑

前端参考vue-quasar-admin。实现了页面(菜单),接口,元素级的权限控制。

后端在路由处加上权限控制的中间件,比如

.get('/function/pagedlist', PermissionCheck({ permission: ["function_view"], role: ["test"] }), controllers.function.getFunctionPagedList)

permission表明当前登录用户必须具备数组里的任意一个权限码,才能访问当前接口。

role表明当前登录用户必须具备数组里的任意一个角色码,才能访问当前接口

permission与role为或关系

lazy-mock ,一个生成后端模拟数据的懒人工具相关推荐

  1. 推荐一个生成后端模拟数据的懒人工具:lazy-mock

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 若邪 来源 | https://juejin. ...

  2. 【Pytorch神经网络实战案例】15 WGAN-gp模型生成Fashon-MNST模拟数据

    1 WGAN-gp模型生成模拟数据案例说明 使用WGAN-gp模型模拟Fashion-MNIST数据的生成,会使用到WGAN-gp模型.深度卷积GAN(DeepConvolutional GAN,DC ...

  3. 如何快速在oracle内生成数据,[Oracle]快速生成大量模拟数据的方法

    快速生成大量模拟数据的方法: create table TEST(id integer, TEST_NUMBER NUMBER(18,6)); insert into TEST select i+j, ...

  4. 【Pytorch神经网络实战案例】17 带W散度的WGAN-div模型生成Fashon-MNST模拟数据

    1 WGAN-div 简介 W散度的损失函数GAN-dv模型使用了W散度来替换W距离的计算方式,将原有的真假样本采样操作换为基于分布层面的计算. 2 代码实现 在WGAN-gp的基础上稍加改动来实现, ...

  5. 对某安卓应用进行分析爬取课表数据制作懒人课表(二)

    本章用到的工具有: AndroidStudio(配合xposed进行分析) xposed(对JAVA层的应用进行hook) 任意一款js调试工具,我这边用的是WT-JS 精易编程助手(只是为了使用里面 ...

  6. 对某安卓应用进行分析爬取课表数据制作懒人课表(一)

    搞事情前 安卓模拟器(安卓版本最好为5.0) fiddler(抓包分析,配置fiddler详见:fiddler 抓取https配置) 精易编程助手 反射大师(脱壳用) dex2jar(把dex文件转成 ...

  7. 【Pytorch神经网络实战案例】13 构建变分自编码神经网络模型生成Fashon-MNST模拟数据

    1 变分自编码神经网络生成模拟数据案例说明 变分自编码里面真正的公式只有一个KL散度. 1.1 变分自编码神经网络模型介绍 主要由以下三个部分构成: 1.1.1 编码器 由两层全连接神经网络组成,第一 ...

  8. Apizza-使用 Mock API 生成接口返回数据

    使用 Mock API 1. 什么是Mock API 通过 Mock API事先编写好 API 的数据生成规则,由工具动态生成 API 的返回数据.开发人员通过访问 Mock API 来获得页面所需要 ...

  9. python list转字符串_我用python写了个自动生成给文档生成索引的脚本!懒人智慧...

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库: PiperLiu / ACMOI_Journey ,记录自己的刷题轨迹,并总结一下方法.心得.想到一个 ...

最新文章

  1. 自动化运维之PSSH
  2. android SQLite数据库用法图文详解(附源码)
  3. #pragma与__pragma的区别与联系2009-01-19 15:47__pragma与#pragma的功能相同,所不同的是:
  4. eclipse Plugin execution not covered by lifecycle configuration:maven.***.plugin
  5. 【K8S学习笔记】Part1:使用端口转发访问集群内的应用
  6. 畅享10e会有鸿蒙吗,功能虽小作用很大 华为畅享10e隐藏功能大揭秘
  7. VS集成Qt开发入门(简易时间显示)
  8. 查看静态库(.a文件)内容
  9. 【吃炸弹的鸽子UVA10765-双联通模板】
  10. JSF是什么?它与Struts是什么关系?
  11. 34-指针与二维数组
  12. 21. 栈的压入、弹出序列
  13. 《中国人工智能学会通讯》——11.34 基于近似动态规划的优化控制研究及 在电力系统中的应用...
  14. 如何释放计算机的ip地址,电脑执行释放DNS和更新IP的命令是什么?怎么执行
  15. 一文带你全面了解什么是颠覆时代的Web3.0未来互联网
  16. 论一个女程序员的自我修养
  17. 公鸡五钱,母鸡三钱,小鸡三只一文钱,求百钱买百鸡
  18. Techwiz LCD 1D:SRF的颜色分析
  19. 关于Class mocking requires to have Objenesis library in the classpath异常的处理
  20. 这年头,当帅哥不容易呀!!

热门文章

  1. R语言-时间日期函数
  2. SQL生成日期维度(到小时)
  3. javascript数组的各种操作
  4. Apple 的 CEO和Google的CEO在星巴克聊什么呢?
  5. Unity资源管理--AssetBundle学习
  6. PHP常量:define和const的不同之处
  7. linux ora-00031,kill session遇到ORA-00031錯誤
  8. java字符串包含连续数字,Java中包含数字的排序字符串
  9. Linux crontab 定时任务没执行,没收到错误信息邮件
  10. 中国共享经济发展报告