基于json-server完整模拟后台接口
json-server的基本使用
安装
cnpm i -g json-server
生成package.json
npm init -y
指定启动命令
定义路由映射关系(routes.json)
apsShiftTime 为 db.json 中的keyName 或 db.js 返回对象的keyName
使用fakerJs造mock数据
定义test.js文件,该文件中使用module.exports导出一个函数,且函数中必须return一个对象,该对象的第一层key即对应的路由(同routes.json映射)
中间件
可以利用中间件对一些参数做校验,并在合适的时间点抛出错误
修改启动脚本
编写中间件
实现增删改查
考虑使用两个中间件,一个中间件用来"启动本地数据库",另一个则是留出来处理具体的业务逻辑,比如开启分页、启用筛选、参数校验等
对于我们模拟请求来说,将增删改查操作全都看作是一张表,我觉得是没有问题的,因此在此约定,以/get开头的请求地址被作为"数据库"地址,后序的增加、删除和编辑操作都基于该"数据库"完成,这里之所以打上引号,是因为我们不可能真的使用mysql或者mongdb,这样就脱离了“提升效率”的初衷了,故在此使用fs模块的文件读写能力,将数据存作json文件
由于可以在中间件中直接res.send不再继续下发,但是JsonServer又必须要求提供db.js或者db.json文件,故我们可以在这里存储错误消息,并在需要抛错时redirect于此,如404
最后路由的规则是一样的,只不过这里我们将/get作为一张“表”来看待了
现在就可以在第二个中间件里边作增删改了
写在最后
首先很明确的是,这样做没啥大的卵用,至少对提升效率来说。毕竟真正工作中谁又会花时间去处理部分后端逻辑呢?哪怕多写一行都不行!!,在线mock它不香吗?可是谁让我闲的dan疼呢