跳转到主内容
极星编程网:以代码为星,赴技术山海!

利用 content_by_lua 伪造 Mock 服务:前端联调利器

用 content_by_lua 可在 OpenResty/Nginx 中零依赖、低延迟地搭建轻量 Mock 服务,支持动态响应、延迟模拟、错误注入及本地 JSON 文件读取,前端仅需修改 hosts 即可联调。 用
content_by_lua
在 OpenResty/Nginx 中快速搭一个轻量 Mock 服务,不启后端、不写接口、不配代理, 前端 改个 host 就能联调,非常高效。 为什么选 content_by_lua 而不是其他方式 它直接运行在 Nginx 请求处理阶段,零依赖、低延迟、高并发。相比起启动 Express/Koa 服务,省去进程管理、端口冲突、跨域配置等麻烦;比 nginx 的
return
或
echo
模块更灵活,支持动态逻辑(如根据 query 参数返回不同数据、模拟延迟、随机错误)。 基础 Mock 配置示例 在 server 块中添加 location,用 Lua 返回 JSON:
location /api/user { content_by_lua_block { ngx.header.content_type = "application/json;charset=utf-8" ngx.say('{"id": 1, "name": "张三", "role": "admin"}') } }
注意点: 面向设计的AXUI前端框架表单 面向设计的AXUI前端框架表单是一款包含表格、列表、弹窗等的AXUI前端框架表单下载。 下载 立即学习 “ 前端免费学习笔记(深入) ”; 必须显式设置
Content-Type
,否则默认是
text/plain
用
ngx.say
输出响应体,不能用
print
或
ngx.log
路径匹配区分大小写,建议统一小写 + 下划线风格 进阶:带逻辑的 Mock 行为 可以轻松实现条件响应,比如: 按 query 参数返回不同用户:
/api/user?id=2
→ 返回李四 模拟加载延迟:
ngx.sleep(0.8)
模拟 800ms 后响应 按请求头或 cookie 控制开关:
ngx.req.get_headers()["x-mock-mode"] == "error"
时返回 500 读取本地 JSON 文件(需开启
lua_code_cache off
开发时热更新):
ngx.location.capture("/mock_data/user.json")
联调集成小技巧 让前端无缝切换真实/_mock_ 环境: 开发环境 hosts 绑定
api.example.com → 127.0.0.1
,Nginx 监听该域名 Mock 接口路径与真实后端完全一致,前端代码无需修改 加个全局开关(如 URL 中带
?mock=1
),Lua 判断是否启用 Mock 配合
log_by_lua
记录请求日志,方便排查前端是否发错路径

相关文章