点选下方红色“流程猿DD”,优先选择“标为隆哥蒙”
天然资源
译者 | 若邪
https://juejin.im/post/6871592049485807630# 序言
前段时间,发现两个较为有趣的夏斯利,两个不须要 mock 因此相匹配二阶的USB间接转贴到后端门牌号的小辅助工具。
install
yarn create @lowcoding/mockstart
yarn startmock server 默认在本地 3000 端口启动,访问 http://localhost:3000/ 即可。
lowcode-mock 默认支持跨域,前端项目中可不必再配置代理,间接请求 lowcode-mock 起的服务即可。
mock
在 src\routes 目录下新建两个 js 文件,将如下内容复制进去保存即可:
import KoaRouter from koa-routerimport proxy from ../middleware/Proxyimport { delay } from ../lib/utillet Mock = require(mockjs)let Random = Mock.Randomconstrouter =new KoaRouter()router.get(/your-mock-api, (ctx) => { ctx.body = 你的第两个mockUSB})module.exports = router使用 vscode 插件 yapi-code ,可间接根据 JSON 统计数据或者 YAPI USB定义自动聚合 mock USB以及 mock 统计数据。
# 根据 YAPI 聚合 mock复制 YAPI 上USB id ,比如 https://你的yapi门牌号/project/869/interface/api/14037 最后面的数字部分
访问创建的 mock USB,即可拿到随机的 mock 统计数据:
复制 JSON 统计数据,比如:
通过 JSON 统计数据聚合的 mock USB须要手动修改路由门牌号。
根据字段类型或字段名称聚合特定的 mock 统计数据配置 yapi-code
配在 package.json 中即可
“yapi-code.mockKeyWordLike”: { “icon”: “Random.image(48×48)”, “img”:“Random.image(48×48)”, “image”:“Random.image(48×48)”, “code”: “200&&number”, “name”:“模糊相匹配后聚合的mock” }, “yapi-code.mockKeyWordEqual”: { “message”: “这是一条精确的mock”, “total”: 200, }, “yapi-code.mockString”: “Random.cword(5, 6)”, “yapi-code.mockBoolean”: “Random.boolean()”, “yapi-code.mockNumber”: “Random.natural(100,1000)”根据 json 统计数据
const json = { code: 100, message: 请求成功, result: { list: [ { code: 注意这是两个字符串的code, name: 张三, icon: , actived: false, }, ], total: 0, },}聚合如下代码
访问 mock USB即可拿到如下类似统计数据:
.get(`xxxxx`, async (ctx, next) => { const list1 = [] for (let i = 0; i < 3; i++) { list1.push({ code: Random.cword(5, 6), name: 模糊相匹配后聚合的mock, icon: Random.image(48×48), actived: Random.boolean(), }) } ctx.body = { code: 200, message: 这是一条精确的mock, result: { list: list1, total: 200 }, } })延时
importKoaRouterfrom koa-routerimport proxy from ../middleware/Proxyimport { delay } from ../lib/utillet Mock = require(mockjs)let Random = Mock.Randomconst router = new KoaRouter()router.get(/delay, (ctx) => { delay(3) // 3 秒后返回结果 ctx.body = delay})可用于测 loading 效果。
http 异常状态码
router.get(/httpError, (ctx) => { ctx.status = 401ctx.body =http 401})代理
router.get(/proxy, proxy(https://github.com/wjkang/lowcode-mock), (ctx) => {ctx.body =https://github.com/wjkang/lowcode-mock})来自 /proxy 的请求转贴到 https://github.com/wjkang/lowcode-mock/proxy ,用于后端USB可联调的时候跳过本地 mock,转贴请求到后端USB。
router.all(new RegExp(^/lowcode/mock/(|^$)), proxy(https://github.com/wjkang/lowcode-mock))不须要 mock 因此相匹配二阶的USB间接转贴到后端门牌号。
# 源码门牌号
https://github.com/wjkang/lowcode-mock
往期所推荐
Java 15 转正了,国内几大互联网公司均有贡献,其中腾讯最为突出!
赠书:一本书带你吃透Nginx应用与运维
超全的 Linux Shell 文本处理辅助工具集锦,快收藏
MySQL中的InnoDB是怎么解决幻读的?
Redis为什么变慢了?常见延迟问题定位与分析
我们在星球聊了很多深度话题,你不来看看?
我的星球是否适合你?
点选看看我们都聊过啥?