我正在使用phantomjs来解析XML站点地图以获取网址,然后在这些网址上查看Google Analytics请求。
我写了一个parsexml.js文件,该文件工作正常,但我没有将它用作checkRequest.js文件中的模块
这是parsexml.js代码(工作正常):
var page = require('webpage').create(),
urls,
sites,
output;
page.open(encodeURI('http://www.somesite.com/sitemap.xml'), function(status) {
if (status !== "success") {
console.log('Unable to access network');
phantom.exit(1);
} else {
urls = page.content.match(/<loc>(.*)<\/loc>/ig);
output = '';
if (urls == null) {
console.log('Pas d\'URL dans le fichier');
} else {
urls.forEach(function(url) {
url = url.replace(/<.*?>/g, '');
sites = 'sites.push(' + url + ');';
output = output + sites;
});
}
console.log(output);
phantom.exit();
}
});
以下是我尝试修改它以将其用作模块的方法:
exports.parsing = function () {
var page = require('webpage').create(),
urls,
sites,
output;
page.open(encodeURI('http://www.somesite.com/sitemap.xml'), function(status) {
if (status !== "success") {
console.log('Unable to access network');
//phantom.exit(1);
} else {
urls = page.content.match(/<loc>(.*)<\/loc>/ig);
output = '';
if (urls == null) {
console.log('Pas d\'URL dans le fichier');
} else {
urls.forEach(function(url) {
url = url.replace(/<.*?>/g, '');
sites = 'sites.push(' + url + ');';
output = output + sites;
});
}
console.log(output);
//phantom.exit();
}
});
}
最后我是如何尝试在最终的js文件中调用模块的:
var xml = require('./parseXML.js');
xml.parsing();
我必须遗漏一些显而易见的东西,但我现在正在寻找几个小时,我感到非常失落。
答案 0 :(得分:0)
阅读this page之后,我想出了两个解决方案。 在第一个中,您只需删除require()中的文件扩展名:
var xml = require('./parsexml');
xml.parsing();
如果要在外部文件中使用其他名称调用函数,则第二种解决方案很有用。所以parsexml.js现在看起来像:
function parsing() {
var page = require('webpage').create(),
urls,
sites,
output;
page.open(encodeURI('http://www.somesite.com/sitemap.xml'), function(status) {
if (status !== "success") {
console.log('Unable to access network');
//phantom.exit(1);
} else {
urls = page.content.match(/<loc>(.*)<\/loc>/ig);
output = '';
if (urls == null) {
console.log('Pas d\'URL dans le fichier');
} else {
urls.forEach(function(url) {
url = url.replace(/<.*?>/g, '');
sites = 'sites.push(' + url + ');';
output = output + sites;
});
}
console.log(output);
//phantom.exit();
}
});
}
function pinapples() {
console.log("Pinapples.");
}
module.exports = {
parsing: parsing,
name_a_fruit: pinapples
};
checkRequest.js看起来像:
var xml = require('./parsexml');
xml.parsing();
xml.name_a_fruit();
然后输出:
&#34; Pinapples。 无法访问网络&#34;
答案 1 :(得分:-1)
function parsing()
{
// ... your function
}
module.exports = {
parsing: parsing
}