更新async.each中的请求参数?

我正在修复我的node.js爬行程序。

他是其中的一部分:

var site = 'http://www.some.com/'; var startPath = '/hambaarst-1.aspx?ipp=35'; var pageNumArray = [2,3,4,5,6,7,8,9,10,11,12]; async.series([ function(callback) { async.each(pageNumArray, function(page, callback) { request(site+startPath, function(err, resp, body){ if(!err && resp.statusCode == 200){ var $ = cheerio.load(body); $('div.Info').find("a").each(function(){ var url = $(this).attr('href'); doctorPageUrlArray.push(url); }); } else { console.log(resp.statusCode); } startPath = startPath.slice(0,11)+page+startPath.slice(-12); // HERE, I am changing start path. callback(); }); }, callback); }, 

我需要它循环11次,每次更改startPathvariables:

 startPath = startPath.slice(0,11)+page+startPath.slice(-12); 

但是,它只是抓取了11次首页: '/hambaarst-1.aspx?ipp=35'

所以我猜,因为节点“asynchronousstartPath不更新。

我该如何解决这个问题?

 var async = require('async'); var format = require('request'); var format = require('util').format; var site = 'http://www.some.com'; var startPath = '/hambaarst-%s.aspx?ipp=35'; var pageNumArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; var doctorPageUrlArray = []; async.each(pageNumArray, function (page, next) { console.log(format(site + startPath, page)); request(format(site + startPath, page), function (err, res, body) { if (!err && resp.statusCode === 200) { var $ = cheerio.load(body); $('div.Info').find("a").each(function(){ doctorPageUrlArray.push($(this).attr('href')); }); } else { console.log(resp.statusCode); } next(); }); }, function (err) { if (err) { return console.log(err); } console.log(doctorPageUrlArray); });