基于node.js构建微服务中的mock服务
缘起
由于现在微服务越来越火了,越来越多的微服务融入到了日常开发当中。在开发微服务的时候,经常会遇到一个问题由于依赖于其他服务,导致你的进度受到阻碍。使你不得不先mock出你期望调用依赖服务的输出,来继续迭代开发。大部分情况下我们写在我们自己的服务中,因为这样方便省事,但是随着需要mock的服务越来越多,会发现越来越难管理,开发重构成本变高,于是在此基础上封装了一个基于Node.js可以根据配置文件生成Mock服务。
缘生
为了方便添加和删除不同的mock服务,将所有的mock服务写入了配置文件,你可以根据你所定义的配置文件生成mock服务,如下所示:
{
'PATH':'./src/mocks',
'PORT':'9001',
"SERVICES":[
{
"name": "authorization",
"Handlers": [
{
"method": "GET",
"resHeader": "HTTP/1.1 200 OK",
"resContent": "{ succeed: true,msg: ok }"
},
{
"method": "POST",
"resHeader": "HTTP/1.1 200 OK",
"resContent": "{ succeed: true,msg: ok }"
},
{
"method": "GET--a=b.mock",
"resHeader": "HTTP/1.1 200 OK",
"resContent": "{ succeed: true,msg: ok }"
}
]
}
]
}
Options:
method
Request MethodGET--a=b.mock
Request GET /hello?a=bresHeader
Response HeaderresContent
Response Contentnpm run mock
Generate Mock Servernpm run clean
Clean Mock Server
配置文件中的PATH是你存放的所有mock服务文件夹,填入请求的方式,以及期望的访问的HTTP状态和返回值。启动mock服务器,一个简单的mock服务就生成了。修改文件配置以后,可以清理生成的mock服务重新生成。
- 项目结构
- 启动截图
- 生成成功
- 清理截图
项目地址
基于node.js构建微服务中的mock服务的更多相关文章
- 基于Node.js的ghost开源博客平台
Ghost 是一套基于Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验. 1.安装node windows 下安装npm:ht ...
- 基于Node.js的实时推送 juggernaut
基于Node.js的实时推送 juggernaut Juggernaut 基于 Node.js 构建.为浏览器和服务器端提供一个实时的连接,可在客户端和服务器端进行数据的实时推送,适合多角色游戏.聊天 ...
- 使用 Node.js 搭建微服务网关
目录 Node.js 是什么 安装 node.js Node.js 入门 Node.js 应用场景 npm 镜像 使用 Node.js 搭建微服务网关 什么是微服务架构 使用 Node.js 实现反向 ...
- Pomelo:网易开源基于 Node.js 的游戏服务端框架
Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese
- 论Node在构建超媒体API中的作用
论Node在构建超媒体API中的作用 作者:chszs,转载需注明. 博客主页:http://blog.csdn.net/chszs 超媒体即Hypermedia,是一种採用非线性网状结构对块状多媒体 ...
- 基于Node.js的强大爬虫 能直接发布抓取的文章哦
基于Node.js的强大爬虫 能直接发布抓取的文章哦 基于Node.js的强大爬虫能直接发布抓取的文章哦!本爬虫源码基于WTFPL协议,感兴趣的小伙伴们可以参考一下 一.环境配置 1)搞一台服务器,什 ...
- 《基于Node.js实现简易聊天室系列之详细设计》
一个完整的项目基本分为三个部分:前端.后台和数据库.依照软件工程的理论知识,应该依次按照以下几个步骤:需求分析.概要设计.详细设计.编码.测试等.由于缺乏相关知识的储备,导致这个Demo系列的文章层次 ...
- Node.js构建可扩展的Web应用1
<Practical Node.js:Building Real-World Scalable Web Apps>[美]Azat Mardan(电子工业出版社) 安装node.js和NPM ...
- 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具
认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...
随机推荐
- 纯Lambda实现斐波那契数列
还需要考虑溢出等问题,主要无事写着玩 Func<float, float, float> a = (arg1, arg2) => 0f;//init ; a = (lastNumbe ...
- FluentMigrator
开源DataBase组件:FluentMigrator 2012-05-27 19:09 by 破狼, 2211 阅读, 4 评论, 收藏, 编辑 今天将介绍一款开源组件FluentMigrator, ...
- jquery 拖动DIV
<html><head> <style type="text/css"> .show{ background:#7cd2f8; width:30 ...
- valuechange(动态的监听input,textarea)
valuechange(动态的监听input,textarea)之前值,之后值的变化 jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化 ...
- IIS7.5下的httpModules设置
部署到IIS7.5上httpModule不起作用了,原来是iis7里面的网站应用程序池使用了默认的“集成模式”,所以所有的http请求处理都托管给了 IIS,web.config里面的配置就不起效了. ...
- Dynamics CRM 2013 报表开发:安装开发工具
最近项目需要开发报表,顺便看了下,首先需要配置开发环境.需要的工具为: 1.Business Intelligence Development Studio 可下载Sql Server 的安装包,选择 ...
- c# 服务程序重启自身
由于工作有这样的需求,于是各种寻找,但是都不满意,偶然间想起一个方法 1.修改服务的Program.cs文件如下 static void Main(string[] args) { //LoadFil ...
- DES加密解密帮助类
public class DESCrypto { /// <summary> /// 初始化des实例秘钥及向量 /// </summary> /// <param na ...
- poj1837挂砝码
解法(背包DP问题) (下为转) 其实感觉 像此题这种类型的并不属于dp范畴 虽然程序看起来使用的是递推这一过程,但总不能说开个二重循环就是dp吧 如果只从求解上来讲(不考虑数据值的范围), 只有枚举 ...
- CSS position overflow float 属性 详解
position overflow float 几个属性比较容易混淆,写一段代码详解各自具体情况: position在w3school的可能取值: 值 描述 absolute 生成绝对定位的元素,相 ...