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.gitInstall
npm installRun
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 ,一个生成后端模拟数据的懒人工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: keepalived高可用集群学习以及实
- 下一篇: 网络流 (网络流问题汇总)