本文主要和大家介绍node+koa实现数据mock接口的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

基于node+koa实现的mock数据接口,Koa需要v7.6.0以上node版本,低于此版本请先升级node

目录结构

// server.js

const Koa = require('koa');

const Router = require('koa-router');

const qs = require('qs');

const assert = require('assert');

const app = new Koa();

const router = new Router();

/**

* 获取列表数据

* @param {request} page 页数

* @param {request} limit 每页数据条数

* @param {response} errno 返回状态码 0 ==> 返回成功 1 ==> 有错误

* @param {response} hasMore 是否有更多数据

*/

let listData = require('./mock/list/list.js');

router.get('/api/getlist/:page/:limit', function (ctx, next) {

const page = ctx.params.page;

const limit = ctx.params.limit;

const maxPage = listData.length / limit;

// 构造返回对象

let res = {

errno: 0,

data: {

hasMore: true,

data: []

}

};

// 如果超过最大页面数

if ((page*1 + 1) >= maxPage) {

res.data.hasMore = false;

}

res.data.data = listData.slice(page*limit, page*limit + limit);

ctx.body = res;

});

/**

* 获取详情数据

* @param {request} id 商品id

*/

const detailData = require('./mock/detail/detail.js');

router.get('/api/getdetail/:id', function (ctx, next) {

const id = ctx.params.id

let res = {

errno: 0,

data: {

data: []

}

}

res.data.data = detailData;

// todo...

ctx.body = res;

});

/**

* 提交评论

* @param {request} id 用户id

* @param {request} uid 商品id

* @param {request} msg 评论内容

*/

router.post('/api/comment', function (ctx, next) {

const params = qs.parse(ctx.req._parsedUrl.query);

const id = params.id;

const uid = params.uid;

const msg = params.msg;

if (id === undefined || uid === undefined || msg === undefined) {

ctx.body = {

errno: 1,

msg: '缺少参数'

}

} else {

// todo...

ctx.body = {

errno: 0,

msg: '评论成功'

}

}

});

app

.use(router.routes())

.use(router.allowedMethods());

app.listen(3000);

console.log("server is running at http://localhost:3000/");

实际项目中,调用接口会遇到跨域的问题,解决的方式有多种,这里介绍如何在webpack中配置

module.exports = {

...

devServer: {

proxy: {

// 将 `/api` 开头的 http 请求,都代理到 `localhost:3000` 上,由 koa 提供 mock 数据

'/api': {

target: 'http://localhost:3000',

secure: false

}

}

...

}

}

项目地址:https://github.com/daijingfeng/mock-server

相关推荐:

koa 接口返回数据_node和koa实现数据mock接口相关推荐

  1. node爬取app数据_node爬取拉勾网数据并导出为excel文件

    前言 之前断断续续学习了node.js,今天就拿拉勾网练练手,顺便通过数据了解了解最近的招聘行情哈!node方面算是萌新一个吧,希望可以和大家共同学习和进步. 一.概要 我们首先需要明确具体的需求: ...

  2. 如何使用charles+mock替换接口返回来测试

    文章目录 场景 方法 1.postman/python+flask来mock接口 2.charles+postman 通过代理来替代原来接口的返回 3.charles的rewrite功能来替换接口返回 ...

  3. postman上一接口返回值作为下一接口传参

    1.第一个接口:①按照接口文档,编写第一个接口脚本:(接口返回productinfo字段) ②在Tests中获取productinfo接口,并设置成环境变量 //将数据解析成json格式 var da ...

  4. web端测试时,接口返回200,页面又没有显示,可能是什么原因?

    200 只是说这个接口调用成功了,具体根据接口文档抓包定位. 首先检查环境是否重启 1.可能接口返回的Data里没有捞数据,而前端未做兼容做个缺省页什么的. 2.可能后端接口返回字段值与接口也定不一致 ...

  5. 接口返回的类型是html页面_1.10 PhalApi 2.x 接口文档

    接口文档 在线接口文档 PhalApi提供一些非常实用而又贴心的功能特性,其中最具特色的就是自动生成的在线可视化文档.在线接口文档主要分为两大类,分别是: 在线接口列表文档 在线接口详情文档 当客户端 ...

  6. 文本过滤后返回空值_利用Fiddler来Mock接口返回值

    前篇文章介绍了Mock测试的相关理论知识,今天就通过实战操作来演示一下如何通过Fiddler抓包工具来Mock接口返回值. 准备工作 准备一个服务端接口,可以自己用SpringBoot写一个简单的Re ...

  7. python3接口自动化测试_【python3+request】python3+requests接口自动化测试框架实例详解教程...

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  8. php写的接口返回数据的页面,PHP怎么解析 WEBSERVICES接口返回的数据

    PHP如何解析 WEBSERVICES接口返回的数据 WEBSERVICE服务器,他们用.net写了个接口 http://XXX.XXX.XXX.XX/Info.asmx?wsdl 我用PHP调用这个 ...

  9. springboot 接口返回数据时 net.sf.json.JSONNull[“empty“]) 异常

    springboot 接口返回数据时 net.sf.json.JSONNull["empty"]) 异常 参考文章: (1)springboot 接口返回数据时 net.sf.js ...

最新文章

  1. 微信网页JSDK接口-wx.chooseImage问题
  2. dubbo 部分 配置的关系-dubbo github 官方案例
  3. 鸟哥的Linux私房菜(服务器)- 第十章、申请合法的主机名
  4. java fast math,Java FastMath.ceil方法代碼示例
  5. maven依赖管理的概念
  6. 随想录(关于核心技术)
  7. dom4j的操作(增删改查)
  8. PopWindow使用方法详解
  9. C++实现双向循环链表
  10. vlc 网页插件的 使用与控制 API
  11. 这些效果我很喜欢,但愿对你们也有帮助
  12. 三大运营商网络使用频段及随身wifi选用
  13. python编程助手_用Python做一个久坐提醒小助手的示例代码
  14. 天耀18期 - 10.字符串常用方法【作业】
  15. GIC Partitioning
  16. PHP 可以利用的危险的函数
  17. 纯粹CSS 绘制向下箭头
  18. Java雷电游戏要准备什么_Java 雷电游戏(未完成)
  19. EasyGrep使用简介
  20. creator 跳跃弧线_CocosCreator零基础制作游戏《极限跳跃》教程4

热门文章

  1. 更新失败 连接超时_苹果发布 iOS iPadOS 更新 修复蓝牙连接失败等错误
  2. java pic 通信_dsPic33E:RS485通信问题
  3. php 小程序页面传参,介绍小程序中传递参数的实现方法
  4. Java语言 List 和 Array 相互转换
  5. 互联网公司面试必问的mysql题目
  6. 如何利用Webp和http缓存节省30%的网络流量
  7. FineUI(专业版)v3.1发布(ASP.NET控件库)!
  8. 使用Putty密钥认证机制远程登录Linux
  9. Spring 核心控制器DispatcherServlet(二)
  10. Disallowed Key Characters(转)