我正在尝试将用于调试目的的代理功能从hapi.js服务器移植到express.js服务器。
该功能使用https
模块从不同的服务器检索数据,我想简单地将此检索的响应转发给原始客户端。
简化代码:
server.get('/proxy/*', (req, res) => {
https.request({
protocol: 'https:',
hostname: 'example.com',
path: req.url.replace(/^\/proxy\//, ''),
headers: Object.assign({}, req.headers)
}, (proxiedResponse) => {
// respond with proxiedResponse here somehow
});
});
在Hapi中,我可以使用reply(proxiedResponse);
轻松完成此操作(reply
是Hapi与res
的对应),因为reply
不是实际的响应对象,而是一个函数在内部创建和发送回复
因为在Express中,res
是实际的响应对象,我想我需要以某种方式替换/修改它。
有没有办法以更简单的方式执行此操作,而不是将proxiedResponse
中的每个相关数据明确复制到res
?
答案 0 :(得分:0)
您只需使用
即可 res.send(proxiedResponse)