mockjs,json-server一起搭建前端通用的数据模拟框架
无论是在工作,还是在业余时间做前端开发的时候,难免出现后端团队还没完成接口的开发,而前端团队却需要实现对应的功能,不要问为什么,这是肯定存在的。本篇文章就是基于此原因而产出的。希望对有这方面的需求的同志有所帮助。
一、使用的组件包
1. mockjs:用于模拟查询结果
2. json-server:搭建模拟服务器,以及模拟CRUD的相关操作接口
二、具体的实现
1. 建立项目,并安装相应的依赖
cnpm install --save-dev mockjs json-server
上述命令为安装依赖,下图为项目结果:
说明:
data:此文件夹存放的为利用mockjs模拟的查询结果,dataProvider后面单独简单
lib:包含的一个jquery文件,用于模拟ajax请求用
route:json-server的路由表,用于模拟crud操作用,没搞清楚如何实现多个db.json
index.js:模拟服务器入口文件
test.html:测试cors
2. 搭建基础的json-server服务器
var JsonServer = require('json-server');
var path = require('path') var Server = JsonServer.create();
var defaultMid = JsonServer.defaults({
"noCors": false,
"static": path.join(__dirname, "/lib")
}); var router = JsonServer.router(path.join(__dirname, '/route/db.json')); Server.use(defaultMid);
Server.use(router);
Server.listen(8009);
console.log('start 8009.....');
此部分内容完全按照json-server的官方说明编写,值得注意的是static和noCors的设置,他是作为一个中间件来完成的。
3. 增加mockjs的应用
在这里mockjs只作为参生数据的基石,而dataProvider.js却提供了统一外部访问接口的能力。也就是把模拟数据以module(相当于mvc中的controller)和func(相当于mvc中的action)来进行分隔。不知这种实现是否可行(本人现在项目中暂时是这样使用的。)
3.1 首先,在data文件夹中建立emp.js文件,编写了如下内容:
var mockjs = require('mockjs'); module.exports = {
list: function(){
var data = mockjs.mock({
'list|3':[
{
'id|+1':1
}
]
});
return data.list;
}
}
此处就是对mockjs的使用
3.2 dataProvider使用实现模块的收集
var emp = require('./emp'); var moduels = {
emp: emp
} module.exports = {
execute: function(m, f, args){
return moduels[m][f].call(moduels[m], args);
}
}
3.3 json中增加get方法,用于获取数据
var provider = require('./data/dataProvider'); Server.get('/data',function(req,res){
var moduleName = req.body ? req.body.moduleName : req.query.moduleName;
var funName = req.body ? req.body.funName : req.query.funName;
var arg = null;
res.json(provider.execute(moduleName, funName));
res.end();
});
如果要访问emp下的List,则地址为:http://localhost:8009/data?moduleName=emp&funName=list
4. 总结
1. json-server的db.json文件只能有一个,这里可以配置多个数据实体,他是以get为获取,post为写入http协议来实现数据的CRUD的
看到这里,你是否有感觉到搭建一个数据模拟服务器如此简单,当然只是webapi的。下载示例代码
mockjs,json-server一起搭建前端通用的数据模拟框架的更多相关文章
- mockjs,json-server一起搭建前端通用的数据模拟框架教程
无论是在工作,还是在业余时间做前端开发的时候,难免出现后端团队还没完成接口的开发,而前端团队却需要实现对应的功能,不要问为什么,这是肯定存在的.本篇文章就是基于此原因而产出的.希望对有这方面的需求的同 ...
- json:server 本地搭建
做个记录, 第一步,我们新建一个文件夹. 第二步,打开文件夹,执行git,没有git可以下载一个.或者用命令行工具进入到这个文件夹! 第三步,初始化json 在git里执行npm init --ye ...
- json server的简单使用(附:使用nodejs快速搭建本地服务器)
作为前端开发人员,经常需要模拟后台数据,我们称之为mock.通常的方式为自己搭建一个服务器,返回我们想要的数据.json server 作为工具,因为它足够简单,写少量数据,即可使用. 安装 首先需要 ...
- Android实战简易教程-第六十六枪(server端搭建和server端Json数据交互)
学习Android有一段时间了.对server端有非常深的好奇,决定对server端的实现进行一些研究,这里实现了一个简单的小样例,用于获取server端的json数据,样例非常easy,适合刚開始学 ...
- Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- 使用WebRTC搭建前端视频聊天室——信令篇
博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址 ...
- 搭建前端监控系统(二)JS错误监控篇
===================================================================== 前端性能监控系统: DEMO地址 GIT代码仓库地址 ...
- 接口神器之 Json Server 详细指南
简介 json-server 是一款小巧的接口模拟工具,一分钟内就能搭建一套 Restful 风格的 api,尤其适合前端接口测试使用. 只需指定一个 json 文件作为 api 的数据源即可,使用起 ...
- 使用WebRTC搭建前端视频聊天室——点对点通信篇
WebRTC给我们带来了浏览器中的视频.音频聊天体验.但个人认为,它最实用的特性莫过于DataChannel——在浏览器之间建立一个点对点的数据通道.在DataChannel之前,浏览器到浏览器的数据 ...
随机推荐
- 洛谷 p5020 货币系统 题解
传送门 一个手动枚举能过一半点而且基本靠数学的题目(然而我考试的时候只有25分) 读清题目后发现就是凑数嘛,.... 对啊,就是凑数,怎么凑是重点啊.. 于是就绝望了一小时手动枚举n从1到5的情况 吐 ...
- 10_27_unittest
接口测试的本质 就是测试类里面的函数. 单元测试的本质 测试函数 代码级别 单元测试框架 unittest 接口 pytest web 功能测试: 1.写用例 ----> TestCase ...
- netty编程一:快速入门
服务器端编程 第一步:maven 依赖 netty-all.jar,详情参考文章最后的maven依赖 第二步:创建服务端的NIO线程组EventLoopGroup: EventLoopGroup bo ...
- iOS 9之后Url链接的NSUTF8StringEncoding转码实现
在iOS中通过WebView加载Url或者请求HTTP时,若是链接中包含中文.特殊符号&%或是空格等都需要预先进行一下转码才可正常访问. 许久没编码,原先的方法已废弃了都,在此对应当前最新的方 ...
- linux 安装mysql5.7版本
首先准备好mysql5.7.17的安装包,安装包放在 /data/software 目录下 进入到 /usr/local 目录下,解压mysql安装包 命令: cd /usr/local tar ...
- Gedit —— 推荐于NOI系列考试(NOIlinux)的轻量编程环境
由于Vim,Emacs上手艰难,Guide又特别难用,Anjuta还闪退 故推荐一款轻量化的编程环境:Gedit(文本编辑器) 配置方法: 1:在桌面上新建main.cpp,打开方式选择使用gedit ...
- Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比
1.概论 -- 来自维基的解释 /dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一 ...
- vue将指定区域的表格数据或element-ui中el-table的数据单笔或多笔批量导出excel
公司在后台管理系统开发中用到了 vue+element-ui 组合的框架,但随着需求的越来越复杂,前端的工作难度也呈几何倍数递增,工作量随之增大.这不,在项目中增加一个将列表数据导出为excel的需求 ...
- Linux shell 编程文件比较
文件比较允许你测试Linux 文件系统上文件和目录的状态 比较 描述 -d file 检查file是否存在并是一个目录 -e file 检查file是否存在 -f file 检查file是否存在并是 ...
- JAVA---MYSQL 基本知识点 第二部分
增删改查 (CRUD): 数据库 , 表 , 记录 ; 约束 ; 主键约束 :primary key 如果是int类型 可以使用 自动增长型 auto_increment; 唯一约束 ...