nodejs代理定时和异步行为

时间:2015-04-21 12:34:17

标签: node.js asynchronous http-proxy node-http-proxy

我对以下代码有疑问: 我需要确认所有在proxyRes事件中完成的处理 将以异步方式完成,其中的所有处理时间都不会影响 代理时间。

提前感谢您的帮助

    var server = http.createServer(function (req, res) {
    console.time();
    var proxy = httpProxy.createProxyServer();
    proxy.web(req, res, {
      target: 'https://gdev.sserver.be/api/host1/account',
    });
    console.timeEnd();

    proxy.on('proxyRes', function (proxyRes, req, res) {
        //console.log('RAW Response from the target', JSON.stringify(proxyRes.headers, true, 2));
        proxyRes.on('data', function (chunk) {
                console.log('resp => ' + chunk);
                connection.query('INSERT INTO test SET ?', {content: chunk}, function(err, result) {
                        if (err) throw err;
                        console.log('writing in db');
                });
        });
        proxy.close();
        proxy = null;
    });
}).listen(3000);

1 个答案:

答案 0 :(得分:0)

是的,proxyRes处理程序的内容似乎是异步的。代理将在数据库查询仍在执行其需要的操作时发生,因此您不会影响代理时间。