http-proxy-middleware
用于把请求代理转发到其他服务器的中间件
1 | npm install --save-dev http-proxy-middleware |
1 | // 引用依赖 |
路径匹配
proxy({...})
: 匹配任何路径,将所有请求转发proxy({'/', {...}})
: 匹配任何路径,将所有请求转发proxy({'/api', {...}})
: 匹配/api
开头的请求proxy(['/api', '/ajax'], {....})
: 匹配多个路径转发proxy('**', {...})
: 匹配任何路径,将所有请求转发proxy('**/*.html', {...})
: 匹配任何以html结尾的proxy('/api/**/*.html', {...})
: 匹配/api
下以html
结尾的请求proxy(['/api/**', '/ajax/**'], {...})
: 组合proxy(['/api/**', '!**/bad.json'], {...})
: 不包括**/bad.json
1 | var filter = function (pathname, req) { |
重写请求
pathRewrite 重写目标url请求
1 | // 重写 |
router 重新指定请求转发目标
1 | // 使用主机或者路径进行匹配,返回最先匹配到结果 |
http proxy
onError
1 | // 监听proxy的onerr事件 |
onProxyRes 监听proxy的回应事件
1 | proxy.on('proxyRes', function (proxyRes, req, res) { |
onProxyReq: 监听proxy的请求事件
1 | proxy.on('proxyReq', function onProxyReq(proxyReq, req, res) { |
onProxyReqWs
1 | function onProxyReqWs(proxyReq, req, socket, options, head) { |
onOpen: 监听来自目标服务器的信息
1 | proxy.on('open', function (proxySocket) { |
onClose: 链接断开
1 | proxy.on('close', function (res, socket, head) { |