gpt4 book ai didi

javascript - 从不存在的站点请求 HTTP 响应时,Node.js 脚本会中断

转载 作者:可可西里 更新时间:2023-11-01 17:10:58 27 4
gpt4 key购买 nike

使用 Node.js,当请求 HTTP 响应时,在最佳情况下,请求返回 HTTP 响应。

但是,有时请求会中断,因为该站点有一个 404 代码,或者该站点根本不存在。当请求一批 URL 时,如果在请求的 1000 个 URL 中的第 200 个 URL 上有 404 代码,整个脚本就会中断。这是我的代码:

var hostNames = ['www.gizmodo.com','www.sitethatdoesnotexist123.com','www.google.com'];

for (i; i < hostNames.length; i++){

var options = {
host: hostNames[i],
path: '/'
};

(function (i){
http.get(options, function(res) {

var obj = {};
obj.url = hostNames[i];
obj.statusCode = res.statusCode;
obj.headers = res.headers;

db.scrape.save(obj);
}).on('error',function(e){
console.log("Error Site: " + hostNames[i]);
});
})(i);
};

有没有办法,例如,如果站点不存在,我只是跳到下一个 URL,而不是让脚本中断?

编辑:固定。感谢用户 DavidKemp

最佳答案

使用 try/catch block 捕获可能发生的任何错误,然后从那里继续。

例如:

var hostNames = ['www.gizmodo.com','www.sitethatdoesnotexist123.com','www.google.com'];

//moved the function out so we do not have to keep redefining it:
var get_url = function (i){
http.get(options, function(res) {

var obj = {};
obj.url = hostNames[i];
obj.statusCode = res.statusCode;
obj.headers = res.headers;

console.log(JSON.stringify(obj, null, 4));
})
};

for (i; i < hostNames.length; i++){

var options = {
host: hostNames[i],
path: '/'
};
try {
get_url(i);
}
catch(err){
//do something with err
}
};

关于javascript - 从不存在的站点请求 HTTP 响应时,Node.js 脚本会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480366/

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