我正在使用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;
}