Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs-DNS.Lookup拒绝使用HTTP的URL?_Javascript_Node.js_Http_Dns_Lookup - Fatal编程技术网

Javascript Nodejs-DNS.Lookup拒绝使用HTTP的URL?

Javascript Nodejs-DNS.Lookup拒绝使用HTTP的URL?,javascript,node.js,http,dns,lookup,Javascript,Node.js,Http,Dns,Lookup,我试图在Nodejs中构建一个Api,它接受一个URL并检查它是否是一个有效的网站 现在,dns.lookup拒绝任何无效的URL(假网站),并接受任何有效的URL,只要它们不是以HTTP://或HTTPS://开头。这是有问题的,因为有效的URL被拒绝 因此,此URL生成“无错误”消息: 此带有HTTPS的URL将生成“错误”消息: console.log输出: 错误:错误:getaddrinfo ENOTFOUND--未定义--未定义 是否有方法将dns.lookup配置为接受以HTTP或H

我试图在Nodejs中构建一个Api,它接受一个URL并检查它是否是一个有效的网站

现在,dns.lookup拒绝任何无效的URL(假网站),并接受任何有效的URL,只要它们不是以HTTP://或HTTPS://开头。这是有问题的,因为有效的URL被拒绝

因此,此URL生成“无错误”消息:

此带有HTTPS的URL将生成“错误”消息:

console.log输出:

错误:错误:getaddrinfo ENOTFOUND--未定义--未定义


是否有方法将dns.lookup配置为接受以HTTP或HTTPS开头的URL?

dns。lookup
采用主机名。协议不是主机名的一部分,因此不应传入。只需通过正则表达式从URL中删除http/https,然后再将其传递给
dns。查找
函数:

const url1='1!'https://google.ca';
const url2='google.com';
常量替换\u REGEX=/^https?:\/\//i
const res1=url1.replace(replace_REGEX.);
const res2=url2.replace(replace_REGEX',);
控制台日志(res1);
console.log(res2);

//dns.lookup(res1…)
dns。查找采用主机名。协议不是主机名的一部分,因此不应传入。只需通过正则表达式从URL中删除http/https,然后再将其传递给
dns。查找
函数:

const url1='1!'https://google.ca';
const url2='google.com';
常量替换\u REGEX=/^https?:\/\//i
const res1=url1.replace(replace_REGEX.);
const res2=url2.replace(replace_REGEX',);
控制台日志(res1);
console.log(res2);

//dns.lookup(res1…)
文档说
dns.lookup()
将主机名作为第一个参数
http
https
是协议。在将这些部件传递进来之前,您能拉出它们吗?文档中说,
dns.lookup()
将主机名作为第一个参数
http
https
是协议。你能在把这些零件送进去之前把它们拔出来吗?那很有效!我早就想到了,但不知道怎么做。我还担心在dns.lookup之后再添加HTTP,但我意识到这是不必要的。这很有效!我早就想到了,但不知道怎么做。我还担心在dns.lookup之后再添加HTTP,但我意识到这是不必要的。
dns.lookup('www.google.ca', function onLookup(err, address, family) 
  if (err == null) {
    console.log ('No Errors: ' + err + ' - ' + address + ' - ' + family) 
  } else {
    console.log ('Errors: ' + err + ' -- ' + address + ' -- ' + family)
  }
});
dns.lookup('https://www.google.ca/', function onLookup(err, address, family) 
  if (err == null) {
    console.log ('No Errors: ' + err + ' - ' + address + ' - ' + family) 
  } else {
    console.log ('Errors: ' + err + ' -- ' + address + ' -- ' + family)
  }
});