javascript - 如何根据 node.js 中的每个键验证多值字典中的值?

标签 javascript arrays node.js object

我有以下带有多个值的字典,在循环迭代时,我需要验证这些值中的任何一个是否分别等于 url。


console.log("Hello World")


const dns =require('dns')

//Verify the status of the url

function verify_URL(url_list){

    for(url in url_list) {

         dns.lookup(url, function(err, result){

            if (result == url_list[url][0]){

                console.log("Url equal to 1",url, url_list[url][0] );

            }
              else if(result == url_list[url][1]){
                console.log("Url equal to 2", url, url_list[url][1]);


              }
              else {
                  console.log("Url is not accesable and server is down", url)

              }

         })


        }
}

var dic = {'facebook.com':["157.240.25.35","157.240.25.36"],'google.com': ["172.217.160.142","172.217.160.143"]}

verify_URL(dic)




预计: 我需要一一获取每个url的结果,在本例中,可能如下

网址等于 1 facebook.com 157.240.25.35 网址等于 1 google.com 172.217.160.142

实际; 在结果中我得到以下值

网址等于 1 google.com 172.217.160.142 网址无法访问且服务器已关闭 google.com

感谢是否有人可以提供帮助?

谢谢

最佳答案

您在 for...in 循环中缺少 let 关键字。

console.log("Hello World")


const dns =require('dns')

//Verify the status of the url

function verify_URL(url_list){

    for(let url in url_list) {

         dns.lookup(url, function(err, result){

            if (result == url_list[url][0]){

                console.log("Url equal to 1",url, url_list[url][0] );

            }
              else if(result == url_list[url][1]){
                console.log("Url equal to 2", url, url_list[url][1]);


              }
              else {
                  console.log("Url is not accesable and server is down", url)

              }

         })


        }
}

var dic = {'facebook.com':["157.240.25.35","157.240.25.36"],'google.com': ["172.217.160.142","172.217.160.143"]}

verify_URL(dic)

此外,请注意,在大多数情况下,您当前针对两个 IP 检查返回的 dns 查找的算法可能会失败,因为 facebook 和 google 有更多的 IP,并且您收到的特定 IP 不在其中的可能性很高。您当前的列表。

您可以做的是为每个域创建一个包含更多 IP 的数组,并对其进行循环以检查结果,而不是静态检查第一个和第二个元素。

关于javascript - 如何根据 node.js 中的每个键验证多值字典中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57638439/

相关文章:

javascript - 如何根据呼吸内容使我所有的 div 的高度相同

无法将字符放入 C 中的字符数组中

node.js - 使用 Electron 获取用户主目录

javascript - 如何使用 Nodejs 将文件上传到 amazon Glacier?

node.js - 在同级文件夹中运行 gulp 任务

javascript - 此代码第一次迭代时给出 0 作为高度和宽度,第二次给出正确的尺寸

javascript - window.location.assign 不继续

javascript - 调试简单的 JavaScript 代码

javascript - 如何在多维数组中使用数组?

arrays - Powershell搜索文本文件以进行匹配,并在行尾添加回车符