检查节点是否存在域名,如果不存在则 return boolean false,如果存在则 return 域名
Check if domain name exists with node, return boolean false if not, return domain name if it does
我正在尝试对域名进行查询(我将遍历整个域名)以查看它们是否存在。我希望将不存在的任何域名 return 设为布尔值 false,将 return 设为域名本身(这样我就可以将其保存到文件中)。目前我有:
var http = require('http'),
options = {method: 'HEAD', host: 'whosebug.com', port: 80, path: '/'};
req = http.request(options, function(r) {
console.log(JSON.stringify(r.headers));
});
req.end();
这是非常基本的,但我整夜都在努力处理 Python 和 Java 代码库,我真正想要的是一个 if 语句来检查 url 而不必弄乱 headers,如果我更改了上面的代码,我将不得不这样做。
基本上我只是想要:
if(request === successful) {
return url;
} else {
return false;
}
为伪代码道歉。欢迎指点(是的,我知道没有针对 JavaScript ;) 的指点)。
按照我的建议使用 dns
,您可以执行以下操作:
const dns = require('dns');
let listOfHostnames = [
'whosebug.com',
'nodejs.org',
'developer.mozilla.org',
'google.com',
'whatisthisidonteven.net'
];
function hostnameExists(hostname) {
return new Promise((resolve) => {
dns.lookup(hostname, (error) => resolve({hostname, exists: !error}));
});
}
Promise.all(listOfHostnames.map(hostnameExists)).then((listOfStatuses) => {
// check results here
console.log(listOfStatuses);
});
使用 dns.promises
,您甚至可以在没有 Promise
构造函数的情况下实现 hostnameExists()
:
const dnsPromises = require('dns').promises;
async function hostnameExists(hostname) {
try {
await dnsPromises.lookup(hostname);
return { hostname, exists: true };
} catch (_) {
return { hostname, exists: false };
}
}
我正在尝试对域名进行查询(我将遍历整个域名)以查看它们是否存在。我希望将不存在的任何域名 return 设为布尔值 false,将 return 设为域名本身(这样我就可以将其保存到文件中)。目前我有:
var http = require('http'),
options = {method: 'HEAD', host: 'whosebug.com', port: 80, path: '/'};
req = http.request(options, function(r) {
console.log(JSON.stringify(r.headers));
});
req.end();
这是非常基本的,但我整夜都在努力处理 Python 和 Java 代码库,我真正想要的是一个 if 语句来检查 url 而不必弄乱 headers,如果我更改了上面的代码,我将不得不这样做。
基本上我只是想要:
if(request === successful) {
return url;
} else {
return false;
}
为伪代码道歉。欢迎指点(是的,我知道没有针对 JavaScript ;) 的指点)。
按照我的建议使用 dns
,您可以执行以下操作:
const dns = require('dns');
let listOfHostnames = [
'whosebug.com',
'nodejs.org',
'developer.mozilla.org',
'google.com',
'whatisthisidonteven.net'
];
function hostnameExists(hostname) {
return new Promise((resolve) => {
dns.lookup(hostname, (error) => resolve({hostname, exists: !error}));
});
}
Promise.all(listOfHostnames.map(hostnameExists)).then((listOfStatuses) => {
// check results here
console.log(listOfStatuses);
});
使用 dns.promises
,您甚至可以在没有 Promise
构造函数的情况下实现 hostnameExists()
:
const dnsPromises = require('dns').promises;
async function hostnameExists(hostname) {
try {
await dnsPromises.lookup(hostname);
return { hostname, exists: true };
} catch (_) {
return { hostname, exists: false };
}
}