基于json-server完整模拟后台接口

2022-03-28  本文已影响0人  习惯水文的前端苏

json-server的基本使用


\bullet 安装

     cnpm i -g json-server

\bullet 生成package.json

    npm init -y

\bullet 指定启动命令

\bullet 定义路由映射关系(routes.json)

    apsShiftTime 为 db.json 中的keyName 或 db.js 返回对象的keyName

\bullet 使用fakerJs造mock数据

    定义test.js文件,该文件中使用module.exports导出一个函数,且函数中必须return一个对象,该对象的第一层key即对应的路由(同routes.json映射)

\bullet 中间件

    可以利用中间件对一些参数做校验,并在合适的时间点抛出错误

    \ast 修改启动脚本

     \ast 编写中间件

实现增删改查


    考虑使用两个中间件,一个中间件用来"启动本地数据库",另一个则是留出来处理具体的业务逻辑,比如开启分页、启用筛选、参数校验等

    对于我们模拟请求来说,将增删改查操作全都看作是一张表,我觉得是没有问题的,因此在此约定,以/get开头的请求地址被作为"数据库"地址,后序的增加、删除和编辑操作都基于该"数据库"完成,这里之所以打上引号,是因为我们不可能真的使用mysql或者mongdb,这样就脱离了“提升效率”的初衷了,故在此使用fs模块的文件读写能力,将数据存作json文件

    由于可以在中间件中直接res.send不再继续下发,但是JsonServer又必须要求提供db.js或者db.json文件,故我们可以在这里存储错误消息,并在需要抛错时redirect于此,如404

    最后路由的规则是一样的,只不过这里我们将/get作为一张“表”来看待了

    现在就可以在第二个中间件里边作增删改了

写在最后


    首先很明确的是,这样做没啥大的卵用,至少对提升效率来说。毕竟真正工作中谁又会花时间去处理部分后端逻辑呢?哪怕多写一行都不行!!,在线mock它不香吗?可是谁让我闲的dan疼呢


fakerJs

上一篇下一篇

猜你喜欢

热点阅读