Я пишу функцию для проверки url
с использованием функции dns.lookup()
, как указано ниже:
const dns = require('dns');
const verifyURL = (url) => {
const protocolRegEx = /^https?:\/\/(.*)/i;
const hostnameRegEx = /^([a-z0-9\-_]+\.)+[a-z0-9\-_]+/i;
if (url.match(/\/$/i)) {
url = url.slice(0,-1);
}
const protocol = url.match(protocolRegEx);
if (!protocol) {
return false;
}
const hostname = protocol[1].match(hostnameRegEx);
if (hostname) {
dns.lookup(hostname[0], (err, adderss) => {
if (err) return false;
return adderss;
})
}
}
Я пытаюсь вернуть либо true
, либо false
изнутри callback
передается в функцию dns.lookup()
.
(async () => {
let x = await verifyURL('https://stackoverflow.com/')
console.log(x);
})();
Но каждый раз, когда я запускаю этот код, я получаю undefined
в качестве возвращаемого значения. Я уже попробовал этот ответ , но он не работает. Пожалуйста, помогите мне. Спасибо !!