2017-09-15 100 views

回答

1

经过一番调查后,我发现使用http-proxy-middleware不能将HTTP请求引导到另一个端点。

http-proxy-middleware由node-http-proxy驱动,并且不可能在node-http-proxy中实现该需求。相关的代码列表如下:

// node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js 
proxyReq.on('response', function(proxyRes) { 
    if(server) { server.emit('proxyRes', proxyRes, req, res); } 
    ... 
    proxyRes.pipe(res); 
}); 

一旦响应被接收,一个事件proxyRes被发射,并且响应是立即管道输送到浏览器(res对象)。

尽管我们可以听proxyRes事件并知道响应状态是404500,但我们无法做出任何更改响应本身的操作。

要实现这个需求,你需要自己编写代理逻辑,或者使用其他一些支持回声拦截的代理模块。