gpt4 book ai didi

javascript - 使用 Node.js 测试 URL

转载 作者:行者123 更新时间:2023-11-30 17:48:38 26 4
gpt4 key购买 nike

假设我有一个 URL 数组,并且我想确保每个 URL 都有效,我已经创建了以下代码。但是,只有数组中的最后一个 URL 得到测试。如何确保每个 url 返回 200 响应代码?需要明确的是,这些都是我正在测试的远程地址,它们指向大小合适的 PDF。

根据@lukas.pukenis 的回复更新。结果类似,实际只检查了几个文件。

function check(l) {
console.log(l);

http.get(l, function(res) {
if (res.statusCode != 200) {
console.log(res.statusCode + ' on '+l);
} else {
console.log('success on ' + l);
}
});
}

for (link in fileLinks) {
check(fileLinks[link]);
}

这段代码输出:

http://somesite.com/somefile1.pdf
http://somesite.com/somefile2.pdf
http://somesite.com/somefile3.pdf
...
all the rest of them
...
http://somesite.com/somefile99.pdf
success on http://somesite.com/somefile1.pdf
success on http://somesite.com/somefile2.pdf
404 on http://somesite.com/somefile5.pdf
success on http://somesite.com/somefile7.pdf

最佳答案

这是因为您的循环每次都使用 var l = fileLinks[link];

重写 l 变量

所以 l 的值是数组的最后一个值。为了保留唯一的 l 值,您需要将其存储在某个地方。更好的功能。像这样:

function check(l) {
var req = http.get(l, function(res) {
if (res.statusCode != 200) {
console.log(res.statusCode + ' on '+l);
} else {
console.log('success on ' + l);
}
}

req.on('close', function() {
console.log('Request done');
});

for (link in fileLinks) {
var l = fileLinks[link];
check(l);
}

拥有一个函数在这里并不神奇。它只是在每次函数调用时将您的本地值保留在内存中,因此 l 在每次需要时都是唯一的。

关于javascript - 使用 Node.js 测试 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com