问题描述
我们有一个代理服务器。当我向它发送请求时,它通过代理将请求发送到另一个站点,接收响应,处理它,并将其返回给客户端。目前的实现如下:
var app = express();
const myrequest = require('request');
app.get("/*",urlencodedParser,async function (request,response) {
myrequest({
url: 'https://google.com'
}).pipe(response);
}
但是,如果我要处理响应,并且处理需要时间,我就不能再将响应返回给客户端
不工作:
var app = express();
const myrequest = require('request');
async function timeout(ms) {
return new Promise((resolve) => {
setTimeout(() => resolve(),ms)
})
}
app.get("/*",response) {
myrequest({
url: 'https://google.com'
},function(resp){
if(cond1){
await timeout(5000); //abstract function,need time to complite
}
resp.pipe(response); //Not work,empty response in browser
//or
response.set(resp.headers);
response.write(resp.body);
response.end(); //Not work,ERROR_INCOMPLETE_CHUNKED_ENCODING in browser
});
}
请帮忙!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)