puer工具的使用
在项目开发的过程当中,总会有前端开发快完成,后端接口却迟迟提供不了的情况。此时为了不影响前端开发的进度,我们可以借助puer来模拟后端接口测试。简单的说,puer就是一个可以实时刷新的前端服务器。具体关于puer的介绍可以参考这篇文章:http://leeluolee.github.io/2014/10/24/use-puer-helpus-developer-frontend/
1.先安装nodeJS
2.安装puer
npm install puer -g
3.puer命令介绍
Usage: puer [options...]
Options:
-p,--port server's listen port, 8000 default,可使用这个命令修改端口,比较常用
-f,--filetype fileType to watch(split with '|'), default 'js|css|html|xhtml'
-d,--dir your customer working dir. default current dir
-i,--inspect start weinre server and debug all puer page
-x,--exclude exclude file under watching(must be a regexp), default: ''
-a,--addon your addon's path,绑定域名,比较常用
-t,--target proxy url,代理URL,比较常用,默认是localhost
--no-reload close auto-reload feature,(not recommended)
--no-launch close the auto launch feature
-h,--help help list
4. 使用方法
4.1命令行中输入以下命令。(第一种方法),可使用这种方法快速编写静态页面,不需要手动刷新。
cd /path/to/workspace ↵
puer

puer会默认打开http://localhost:8000/(端口可以用 -p 8001参数进行控制),页面会列出该目录下所有的文件

4.2命令行中输入以下命令(第二种方法),这种方法可以实时更新接口数据。
cd /path/to/workspace ↵
puer -a route.js

puer提供了叫插件(addon)的功能,集成了express的route.js(route.js的名字可以随意取)来达到最简的路由配置,可以提供基于真实http请求与相应的动态的mock数据。route.js文件代码如下:
// use addon to mock http request
module.exports = {
// GET
"GET /v1/posts/:id": function(req, res, next){
// response json format
res.send({
title: "title changed",
content: "tow post hahahah",
desc:'aaaa',
age:'111',
name:'bbbb'
})
},
// PUT POST DELETE is the same
"PUT /v1/posts/:id": function(){ },
"POST /v1/posts": function(){ },
"DELETE /v1/posts/:id": function(){ }
}
它其实就是一段nodejs程序,输出是一配置对象,key的空格前代表的是请求Method,后半部分是请求路径,而value代表回调函数和express的路由中间件是一致的,传入的是request和response对象。返回配置中的URL就可以返回定义的值,如下图:

4.3.使用代理模式,应用puer到以有服务器中,这种方法最实用,工作中也是用到最多的。
一般在开发过程中,完全使用静态文件开发比较少,一般都是会启动本地的运行环境。这个时候,我们可以使用--target path(-t命令)切换到代理模式将puer作为一个代理服务器使用。比如本地已经存在一个localhost:7070的服务,你要在其上实现自动刷新的功能,请使用-t 或 --target。这样puer的服务器地址就会指向你本地服务(localhost:7070)的地址,可以配合addon模式使用,这样就可以直接使用定义的接口了。操作步骤如下图:
DOM命令中输入:
puer -t http://localhost:7070 -a a.js

-t http://localhost:7070 使用代理,代理指向localhost:7070,locahost:7070指工程本地启动的服务
-a a.js 页面所需的所有接口都写在a.js里面,配置路由,这样就可以提供基于真实http请求与相应的动态的mock数据

如果是在工程代码所在的目录下执行puer(比如上面的例子:D:\git\myProject),最大的好处是:
1.无论是写样式还是html代码,页面实时刷新。
2.模拟真实的http请求,自定义接口返回的数据。
如果是其他的目录,也可以模拟真实的http请求,只是不能随时监听工程目录下的文件变化。
使用代理服务后,页面的访问地址可以和接口文件里的请求地址处于一个域下的,所以发请求不会有跨域问题。
另外一种比较简单的调试方法就是,使用上述4.2的方法启动puer,JS里的请求数据写好,然后参考chrome设置--disable-web-security解决跨域这篇文章来启动chrome,即使在不同域下,也可以直接使用接口数据进行调试了。
puer工具的使用的更多相关文章
- 超简单工具puer——“低碳”的前后端分离开发
本文由作者郑海波授权网易云社区发布. 前几天,跟一同事(MIHTool作者)讨教了一下开发调试工具.其实个人觉得相较于定制一个类似MIHTool的Hybrid App容器,基于长连的B/S架构的工具其 ...
- Unity3d入门 - 关于unity工具的熟悉
上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
- 应用工具 .NET Portability Analyzer 分析迁移dotnet core
大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
- CorelDRAW X8 如何破解激活(附国际版安装包+激活工具) 2016-12-15
之前有位搞平面的好友“小瘦”说CDR X8无法破解,只能用X7.呃……呃……呃……好像是的 其实CDR8难激活主要在于一个点“没有离线激活了,只可以在线激活”,逆天不是专供逆向的,当然没能力去破解,这 ...
随机推荐
- Web应用程序系统的多用户权限控制设计及实现-首页模块【5】
首页模块就是展示不同权限的最终结果了,在阅读这章之前若有些不明白,可看看后续的单独的权限模块,用户模块,目录模块后从整体上再看首页模块. 阅读该模块需要一定或者是比较熟练的js知识,EasyUI Ta ...
- SAM4E单片机之旅——17、通过UART进行标准IO
交互还是很有必要的,而且使用键盘和显示器的交互效率还是很高的.当然,可以直接使用UART进行字符的输入和输出.但是又何必浪费了C的标准输入输出的格式控制之类的功能呢? 这次内容就是使用scanf() ...
- swap分区
swap分区 一块的新加进来的硬盘,我们要怎么给它创建swap分区呢?要遵循下面四个步骤: (1)使用一个现有的分区,比如记为A (2)然后分区类型的16进制编码,即A的16进制编码. (3)格式化A ...
- 【API】短信通106端口验证短信的实现
信息时代,无论是电商还是网络营(chuan)销(xiao)都希望得道更多的用户信息.所以很多的网站注册上用到了手机验证码功能.网上有很多的SMS接口提供商.在选择的时候无非就是考虑到1.发送速度:2. ...
- Node创建TCP聊天
//创建新的tcp服务器var net = require('net');var chatServer = net.createServer()chatServer.on('connection',f ...
- linux配置文件的一些调优
Linux中所有东西都是文件,一个socket就对应着一个文件描述符,因此系统配置的最大打开文件数以及单个进程能够打开的最大文件数就决定了socket的数目上限:但是linux是有文件句柄限制的,而且 ...
- python正则表达式 小例几则
会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...
- hdu 2196 Computer 树形dp模板题
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- Linux 安装 redis
环境:centos7 参考:http://blog.csdn.net/lk10207160511/article/details/50364088 步骤如下: 安装redis: 打开终端 输入 s ...
- 《TCP/IP详解 卷一》读书笔记-----TCP数据流
1.Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms 2.Nagle Al ...