我是nodejs和javascript的新手。我正在学习异步编程。我想找到一个域名的IP地址。我正在使用nodejs构建“DNS”库。
dns.resolve(domainName, function onLookup(err, addresses, family) {
if (err){
res.send(err);
} else {
console.log(addresses);
var domainAddress = addresses;
}
});
这是实际的代码。我试图让domainAddress退出回调。由于它的异步编程,获取domainAddress需要时间,而且我暂时无法访问它。
如果我使用的代码类似于此,我可以访问domainAddress
dns.resolve(domainName, function onLookup(err, addresses, family) {
if (err){
res.send(err);
} else {
domainAddress = addresses;
}
});
setTimeout(function() {
console.log(domainAddress);
}, 1000);
但是我觉得这不是将回调结果导出到主程序的正确方法。
你能为这个问题提供任何替代解决方案吗?
注意: 一旦拿到IP,我想做额外的任务。我想根据IP地址找到地理位置。为此,我需要将此IP传递给名为Geoip-lite的单独模块。但是因为我无法获得非常困难的地址