我正在使用Robots.js从网站列表的robots.txt文件中获取站点地图。基本上,我使用QueryStream从MongoDB集合中查询每个站点URL并将其传递给Robots.js函数进行处理。
var stream = Urls.find().stream();
stream.on('data', function(data) {
// Fetch the urls from domain pool
var url = data;
// Get Sitemaps
parser.setUrl('http://' + url + '/robots.txt' || 'https://' + url + '/robots.txt', function(parser, success) {
if (success) {
parser.getSitemaps(function(sitemaps) {
// The array keeps increasing after each url passed in
console.log(sitemaps);
// Did try this but not work
sitemaps.length = 0;
});
}
});
}).on('error', function(err) {
// handle the error
console.log(err);
}).on('close', function() {
// the stream is closed
console.log('End of database!');
});
问题是它返回一个数组,每次传入和传递的URL都会不断增加,例如:
[url1/sitemap.xml],
[url1/sitemap.xml, url2/sitemap.xml],
[url1/sitemap.xml, url2/sitemap.xml, url3/sitemap.xml]
虽然我想要的理想事情是
传入的每个相应网址都有[url1/sitemap.xml],
[url2/sitemap.xml],
[url3/sitemap.xml]
。
所以我的问题是,有没有办法获取仅与给定网址匹配的网站地图网址?我试过sitemaps.filter
来过滤但没有运气。