当前位置: 首页 > news >正文

有趣的 npm 库 · json-server

json-server:5 分钟,用一个 JSON 文件,让你拥有一个能 CRUD 的本地 API。

1. 它是什么?

一句话解释:

一个用 JSON 文件直接生成完整 REST API 的工具,并且支持直接对这个 JSON 数据进行增删查改(持久化到文件)。

2. 适用场景

  • • 前后端分离开发:后端还没准备好,前端需要先调试数据
  • • 快速原型:做 DEMO 给客户看,不想搭后端
  • • 离线开发:出差、没网、本地调试,依然能跑
  • • 可控测试数据:自动化测试需要稳定、可修改的接口响应

3. 核心优势

1) JSON 文件 = 简单数据库

  • • 所有的增删查改都会直接作用在本地 db.json 文件上,并且立即持久化
  • • 关掉服务、重启电脑,数据依然在
  • • 这个文件可以放进 Git 仓库,随代码同步
  • • 不需要 MySQL/Mongo,JSON 本身就是数据库

⚡ 2) 真 RESTful API,开箱即用

  • • 无需写任何路由或控制器
  • • 自动生成 GET / POST / PUT / PATCH / DELETE 接口
  • • 直接在 axios、fetch 里调用,和真实后端一样

3) 内置查询功能

支持常见数据操作,无需写 SQL:

GET /users?name=Tom                # 条件筛选
GET /users?_page=1&_limit=5         # 分页
GET /users?_sort=name&_order=desc   # 排序
GET /users?q=keyword                # 全文搜索

4) 极简 + 可扩展

  • • 上手只需一条命令
  • • 如果需要复杂逻辑,可以写 server.js 自定义中间件、路由、数据生成逻辑(结合 faker.js)

4. 和其他 Mock 工具的区别

工具主要特点数据是否持久化是否需平台依赖
json-server本地 JSON 文件生成 REST API✅ 是❌ 否
Apifox / Apipost / YApi在线接口管理 + Mock + 测试 + 文档❌ 否(平台级 mock)✅ 是
Mock.js浏览器端生成随机数据❌ 否❌ 否


5. 快速上手

安装

npm install -g json-server

准备数据

db.json

{"users":[{"id":1,"name":"Tom"},{"id":2,"name":"Jerry"}
]
}

启动服务

json-server --watch db.json --port 3000

访问接口

GET    http://localhost:3000/users
POST   http://localhost:3000/users
PUT    http://localhost:3000/users/1
DELETE http://localhost:3000/users/1


6. 使用限制与注意事项

虽然 json-server 很好用,但它并不是万能的:

  • • 只适合简单的增删查改场景
  • • 不支持复杂的业务逻辑(如多表关联、事务处理、权限校验)
  • • 性能上不适合高并发或海量数据
  • • 生产环境建议使用正规后端 API,json-server 更适合作为开发阶段的辅助工具


7. 总结

如果你需要一个:

  • • 能直接 CRUD 的本地 API
  • • 数据真实可落地(文件持久化)
  • • 无需复杂配置 的 mock 工具

那么 json-server 是一个极其高效的选择。

但如果你的需求涉及复杂业务逻辑、权限控制、关联查询等,请选择真正的后端服务来支撑。

http://www.dtcms.com/a/328381.html

相关文章:

  • frp 实现内网穿透实战教程
  • CANopen Magic调试软件使用
  • 1 JQ6500语音播报模块详解(STM32)
  • 工作流调度(草稿)
  • Android Studio注释如何不从行首开始
  • Mysql GROUP_CONCAT函数数据超长导致截取问题记录
  • 常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx运维指南
  • React 合成事件系统深度解析
  • Jenkins 实战指南-项目自动构建部署全流程通关
  • 明远智睿T113-i核心板:工业设备制造的“破局者”
  • Qt 常用控件 - 7
  • 大数据与人工智能在保险行业中的应用:2025年精准理赔的优化
  • VirtualBox 虚拟机磁盘扩容完整手册
  • 深入理解二维数组创建与使用
  • Unity TextMeshPro(二)优化
  • Redis知识点+项目+面试八股
  • 深度解读 WizTelemetry 2.0:链路追踪如何让分布式系统“无所遁形”
  • spring-cloud整合nacos详细攻略
  • 《汇编语言:基于X86处理器》第13章 高级语言接口(2)
  • 无人机在环保监测中的应用:低空经济发展的智能监测与高效治理
  • 一体化步进伺服电机在无人机舱门应用中的应用案例
  • gpt-oss-120b 模型:笔记本上的智能“奇幻之旅”
  • 什么叫渲染效果图?啥是渲染图
  • 如何将 AGV 叉车成功集成到仓库自动化系统中?
  • 智能化评估体系:数据生产、在线化与自动化的三重奏
  • ​苹果应用高版本出现:“无法安装此app,因为无法验证其完整性”是怎么回事竟然是错误的
  • 【前端Vue】如何在log-viewer组件中添加搜索定位功能
  • 基于柔性管控终端的新能源汽车充电站有序充电系统设计与实现
  • PiaRef代码库结构梳理
  • Java 大视界 -- Java 大数据在智能教育学习效果评估指标体系构建与精准评估中的应用(394)