微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node JS Express,请求模块大问题

如何解决Node JS Express,请求模块大问题

我们有一个代理服务器。当我向它发送请求时,它通过代理将请求发送到另一个站点,接收响应,处理它,并将其返回给客户端。目前的实现如下:

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 举报,一经查实,本站将立刻删除。