gpt4 book ai didi

node.js - Node http-proxy/http-proxy-middleware - 如何操作代理响应

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:24 29 4
gpt4 key购买 nike

我正在使用 Express 4,并且使用中间件 http-proxy-middleware ( https://github.com/chimurai/http-proxy-middleware ),并且遇到以下问题

通常情况下,我可以在返回客户端之前执行以下操作来操作响应

app.get('/v1/users/:username', function(request, response, next) {
var username = request.params.username;
findUserByUsername(username, function(error, user) {
if (error) return next(error);
return response.render('user', user);
});
});

但是,如果我使用代理,我如何执行自定义逻辑,假设我想在响应客户端之前操作一些数据?有没有一个好的模式可以使用这个中间件来做到这一点?

app.use('/api', proxy({target: 'http://www.example.org', changeOrigin: true}));

这是我也放入 github 中的问题的反向链接 - https://github.com/chimurai/http-proxy-middleware/issues/97

如有任何帮助,我们将不胜感激。

最佳答案

根据http-proxy的官方文档,我认为这是正确的方法。 modify -response

app.use('/api', proxy({
target: 'http://www.example.org',
changeOrigin: true,
selfHandleResponse: true, // so that the onProxyRes takes care of sending the response
onProxyRes: function(proxyRes, req, res) {
var body = new Buffer('');
proxyRes.on('data', function(data) {
body = Buffer.concat([body, data]);
});
proxyRes.on('end', function() {
body = body.toString();
console.log("res from proxied server:", body);
res.end("my response to cli");
});
}
}));

关于node.js - Node http-proxy/http-proxy-middleware - 如何操作代理响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38806249/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com