我目前正在使用节点模块'请求'创建一个作业队列,从用户输入的URL中提取HTML数据。到目前为止,这是我的代码:
var jobQueue = [];
function processNextJob() {
if (jobQueue.length < 1) {
console.log("No jobs to complete");
}
else {
var job = jobQueue[0];
request(job.target , function (error, response, body) {
console.log(body);
});
jobQueue.shift();
}
}
如果我输入&#34; http://www.google.com&#34;或&#34; http://facebook.com&#34;,但如果我只输入&#34; google.com&#34;或&#34; twitter.com&#34;。 对于用户在表单中键入的任何有效链接发出http请求,最好的方法是什么?例如,我想让它在用户输入&#34; google.com&#34;或者&#34; www.google.com&#34;没有&#34; http://在开头。
有什么想法吗?在此先感谢您的帮助!
答案 0 :(得分:0)
一种可能的解决方案是检查网址的开头是否为“http://”,如果不是则为前缀。例如:
var prefix = 'http://';
if (s.substr(0, prefix.length) !== prefix) {
s = prefix + s;
}
作为一个注释,我建议在输入字符串时格式化字符串,而不是在处理它们时。这样,如果在不同的函数中使用它们,则无法检查它们是否再次正确格式化。