lazy-mock ,一个生成后端模拟数据的懒人工具
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',
//server
RouteRelativePath:'/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 () {//不需要生成设为false
let 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 ,一个生成后端模拟数据的懒人工具的更多相关文章
- 【vue】生成接口模拟数据
目录 方案一:自定义模拟数据 Step1 创建json文件 Step2 在 vue.config.js 中配置 Step3 在组件中使用 (方式一) Step3 封装api (方式二) Step4 在 ...
- [Oracle]快速生成大量模拟数据的方法
快速生成大量模拟数据的方法: create table TEST(id integer, TEST_NUMBER NUMBER(18,6)); insert into TEST select i+j, ...
- json-server 和mock.js生成大量json数据
JSON-server和mock.jsmock文件夹下 db.json db.jsjson-sever使用 安装:npm install json-server -g/mock 目录下执行json-s ...
- 一个比ES处理数据更快的工具--Hubble.Net
http://www.cnblogs.com/eaglet/tag/Hubble.Net/
- 【vue】vue +element 搭建项目,mock模拟数据(纯干货)
1.安装mockjs依赖 (c)npm install mockjs --save-dev 2.安装axios(Ajax) (c)npm install --save axios 3.项目目录 4.设 ...
- C#中使用Bogus创建模拟数据
原文:CREATING SAMPLE DATA FOR C# 作者:Bruno Sonnino 译文:C#中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时候,经 ...
- Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...
- 让前端独立于后端进行开发,模拟数据生成器Mock.js
让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...
- 前后端分离开发——模拟数据mock.js
mock.js 生成模拟数据,拦截ajax请求 <script type="text/javascript" src="http://libs.baidu.com/ ...
随机推荐
- Content-Disposition 响应头,设置文件在浏览器打开还是下载
Content-Disposition属性有两种类型:inline 和 attachment inline :将文件内容直接显示在页面 attachment:弹出对话框让用户下载 code: cont ...
- ASP.NET Core SignalR CORS 跨域问题
将 SignalR 集成到 ASP.NET Core api 程序的时候,按照官方 DEMO 配置完成,本地访问没有问题,但是发布之后一直报跨域问题,本地是这样设置的: 原始代码: services. ...
- 发起一个NetCore技术联盟促进NetCore技术应用
一.简介 1.从十几年前开始net,到两年前转java,到去年底发现netcore2这玩艺,从此以后坚定成为netcore的追随着. 2.有心促进netcore的应用,聚集一些人员共同学习,减少技术使 ...
- Python中进程和线程的总体区别
Num01–>线程 线程是操作系统中能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. 一个线程指的是进程中一个单一顺序的控制流. 一个进程中可以并发多条线程,每条线程并行 ...
- Design-341. Flatten Nested List Iterator
Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...
- 石头剪刀布Java实现
java实现石头剪刀布过程 首先来看石头剪刀布的所有可能情况,具体如下图 第一种思路是穷举所有可能,使用if条件语句,略显呆板和麻烦. 第二种思路,因为计算机存的是数字,所以我们可以从数字角度来找规律 ...
- 网站引入外部js
有时想看某个网站下一些数据,需要用到js做一个实时的筛选,却又苦于该网站没用jQuery导致想使用jQuery时,还无法下手,那么下面这段js或许可以帮助你.1.打开我们的chrome调试工具,切换到 ...
- nginx 开启GZIP、域名指向index.html
nginx 虽然默认开启了gzip压缩,但是有关压缩文件.压缩效率没有开启,在建设我的(个人博客)[www.fayinme.cn]中,直观的感受到gzip带来的访问速度提升的快感. 如何开启GZIP ...
- 【wireshark】开发环境搭建
1. 引言 本文相关内容可参考Wireshark开发指南第2章”Quick Setup” 要对wireshark代码进行修改,除了下文介绍的lua插件的方式以外,都需要对wirehshark源码进行编 ...
- [题解]luogu P4116 Qtree3
终于来到了Qtree3, 其实这是Qtree系列中最简单的一道题,并不需要线段树, 只要树链剖分的一点思想就吼了. 对于树链剖分剖出来的每一根重链,在重链上维护一个Set就好了, 每一个Set里存的都 ...