如何将变量传递给请求的回调?

时间:2014-11-28 11:48:59

标签: javascript node.js express request

我正在使用express和request将网站的html变成json,然后返回它。例如:

app.get('/live', function(req,_res){
  res = _res;
  options.url = 'http://targetsite.com';
  request(options,parseLive);
});

function parseLive(err, resp, html) {
  var ret = {status:'ok'};
  -- error checking and parsing of html --
  res.send(ret);
}

目前我正在使用全局var res来跟踪返回调用,但是当同时发出多个请求时,这会失败。所以,我需要一些方法来匹配来自快递的回复呼叫到请求中的回调。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用闭包。

将变量传递给函数。从该函数返回要传递给request的函数。

app.get('/live', function(req,_res){
  options.url = 'http://targetsite.com';
  request(options,parseLiveFactory(res));
});


function parseLiveFactory(res) {
    function parseLive(err, resp, html) {
      var ret = {status:'ok'};
      -- error checking and parsing of html --
      res.send(ret);
    }
    return parseLive;
}