Qenya (昆雅)
Qenya是一个轻量数据管理,api输出的Mock Server。基于koa2、graphql、mongodb(tingodb)。
通常,前后端分离开发,前后端约定好接口后,分别各自开发,再一起联调。在后端接口还没有数据的时候,前端如何mock后端数据,就成了一个问题。
使用过很多种方案,比如用json文件,mock.js,faker等等,每种方案都不是特别的让人满意。个人希望的一个Mock Server应该具有以下的特点。
- 无污染。无论是html还是js源码,都可以做到开发和线上代码完全相同。
- 可以生成随机数据,数据可以持久化,可以做单元测试。
- 可以处理数据间的关联。
- 配置简单,很少的配置就可以开工。
- 可以在多人协同开发下使用。
所以就有了 Qenya 这个项目,通过以下几个方面来满足这些需求。
- 使用了 tingodb(超轻量文件数据库)或者 mongodb(可以多人协作开发)来持久化数据,可以比较完整的模拟CRUD的全部功能。
- 自动创建一个管理后台,通过图形化的方式来代替配置文件。
- 通过 graphql 来转换数据,处理数据关联等问题。
安装
首先安装nodejs,建议node 7.6 以上版本,创建一个目录,在命令行运行
$ npm install qenya --save-dev
使用
最小化配置只需要配置两个服务启动的端口号。会默认使用tingodb作为数据库,存放地址为项目启动目录下的data文件夹
const qenya = require('qenya')
qenya({
appPort: 5000,
apiPort: 5001
})