我正在使用express并请求将网站的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来跟踪返回调用,但是当同时进行多个请求时,此操作将失败。因此,我需要某种方式将来自express的返回调用与其请求中的回调进行匹配。

我该怎么办?

最佳答案

使用闭包。

将变量传递给函数。从该函数返回要传递给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;
}

08-28 09:54