request-watcher v1.9.5
request-watcher
A tool that forwards network requests

Quick Start for using axios
install packages
$ npm install -g request-watcher-server
$ npm install -D request-watcher
$ npm install -D request-watcher-axiosstart server
$ rws
$ open http://localhost:2333inject watcher code
const axios = require('axios')
const watcher = require('request-watcher')
const axiosWatcher = require('request-watcher-axios')(axios)
watcher.use(axiosWatcher)Quick Start for using fetch
install packages
$ npm install -g request-watcher-server
$ npm install -D request-watcher
$ npm install -D request-watcher-fetchstart server
$ rws
$ open http://localhost:2333inject watcher code
const watcher = require('request-watcher')
const fetchWatcher = require('request-watcher-fetch')(fetch)
watcher.use(fetchWatcher)Install
$ npm install -g request-watcher-server
$ npm install -D request-watcherUsage
Start Server
The server requires node v7.6.0 or higher for ES2015 and async function support
Once you globally installed the request-watcher-server, you will get a global cmd request-watcher-server and also rws for short.
And then you can use the following cmd:
$ rws [-a 0.0.0.0] [-p 2333]default address is 0.0.0.0:2333 you can use
rws -hto get more help
Watch Request
const watcher = require('request-watcher')
const watcherParams = {
username: 'username',
appname: 'appname',
labels: [],
}
// e.g.
// before send a request, emit the request to request-watcher-server
const { emitReq, emitRes } = watcher(watcherParams)
const requestParams = { url, params, headers, method: 'POST' }
emitReq(requestParams)
axios.post(url, params, headers)
.then(res => {
// after get the response, emit the response to request-watcher-server
const { status, data, headers } = res
const responseParams = { status, data, headers }
emitRes(responseParams)
// your biz code bellow
})
.catch(err => {
})Note that each time you watch a request, you need to use the
watcherfunction to regenerate the matchingemitReqandemitRes
watcherParams
watcherParams is an Object Containing the following properties
| Args | Type | Description |
|---|---|---|
| origin | String (optional) | watcher origin |
| username | String (required) | one of the request markers |
| appname | String (required) | one of the request markers |
| labels | [String] (optional) | add extra label to request to differentiate |
requestParams
requestParams is an Object Containing the following properties
| Args | Type | Description |
|---|---|---|
| url | String (optional) | request url |
| method | String (optional) | request method |
| headers | Object (optional) | request headers |
| params | Object (optional) | request params in body |
responseParams
responseParams is an Object Containing the following properties
| Args | Type | Description |
|---|---|---|
| status | Integer (optional) | response status |
| headers | Object (optional) | response headers |
| data | Object (optional) | response data |
Watch Logger
You can just emit a log to the server, like bellow:
const { emitLog } = watcher(watcherParams)
const loggerParams = { title: 'logger', content: 'this is a log' }
emitLog(loggerParams)Notice! everytime you emit a logger need to regenerate a new emitLog function. It's Inconvenient(indeed it's for plugin using), thus we supply a more convenient way to do same thing:
// Only define once
const watcherParams = {labels: ['log']}
const logger = watcher.logger({watcherParams})
// use everywhere
logger('logger title', 'logger content')
// or
logger('logger content')loggerParams
loggerParams is an Object Containing the following properties
| Args | Type | Description |
|---|---|---|
| title | String (optional) | logger title |
| content | Any (optional) | logger content |
Global Config
You can use watcher.global to define global params, and thus you can just use watcher() without passing params.
watcher.global.origin = 'http://127.0.0.1:8080' // default is 'http://0.0.0.0:2333'
watcher.global.username = 'request-watcher' // default is 'username'
watcher.global.appname = 'request-watcher-app' // default is 'appname'
const { emitReq, emitRes } = watcher()
const { emitLog } = watcher()Plugins
We support plugin to simplify the configs. And now we have these plugins:
Plugin Usage
Using axios for example:
const watcher = require('request-watcher')
watcher.use(require('request-watcher-axios')(axios))And then, you can just focus on your biz code without inserting redundant code before or after the ajaxing code.
Eggs
- Clicking the
Consolebutton outputs the data to the browser's console and obtains a global variable$itpointing to that data.
Example
Refer to this example
Enjoy! :)
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago