如果无法访问其他服务器,Node.js应用程序将退出.如何防止应用程序停止
Node.js application quits if other server is unreachable. How do I prevent my application from stopping?
我正在编写一个应用程序,该应用程序定期与远程服务器进行登录,以登录新版本的软件。这是我在node.js中的第一次尝试,所以请耐心等待。当服务器启动并运行时,程序运行完全正常
然而,当服务器没有运行时,程序会退出并返回错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED
at errnoException (net.js:904:11)
at Object.afterConnect [as oncomplete] (net.js:895:19)
从我读到的内容来看,我相信我已经通过在回调中包含response.on('error',…)部分,设置了我的代码来正确处理错误。然而,正如您从错误中看到的,它并没有给我提供我试图设置的错误console.log。这是我的代码中不起作用的部分,如果需要,我可以包括其他部分,这只是一个相当大的应用程序:
var index = require ("./index");
var http = require ('http');
var fs = require ("fs");
var apps = [{
"name":"IDSocket",
"localVersion": "",
"hostVersion": "",
"downloadURL": ""
},
{
"name": "X-Wing vs. Tie Fighter",
"localVersion": "4.2.1",
"hostVersion": "",
"downloadURL": ""
}]
//checks host server for host version, stores as json object
function checkHost(hostinfo){
callback1 = function(response) {
var str = '';
var hostObject;
response.on('data', function (chunk) {
str += chunk;
});
response.on('error', function(err) {
console.log('problem with request: ' + err.message);
hostObject = "why, error? " + err.message
});
response.on('end', function () {
hostObject = str;
hostObject = JSON.parse(hostObject);
apps[0]["hostVersion"] = hostObject[0]["version"];
apps[0]["downloadURL"] = hostObject[0]["downloadURL"];
apps[1]["hostVersion"] = hostObject[1]["version"]
apps[1]["downloadURL"] = hostObject[1]["downloadURL"]
console.log(apps[0]["hostVersion"] + ": recieved IDSocket host version");
index.everyFourHours();
});
}
http.request(hostinfo, callback1).end();
};
提前感谢你帮助我了解这里发生了什么!
编辑:到目前为止我已经尝试过的东西:
在http.request行上的try块以及带有catch块的整个回调函数,catch块只是console.log错误
process.on('ncaughtException'
域。创建&domain.run
您应该向http.request
的实例添加一个错误处理程序。
例如,您可以将http.request
调用更改为:
var req = http.request(hostinfo, callback1);
req.on('error', function(err) { console.log("ERROR: " + err.message); });
req.end();
阅读此处了解更多信息。
相关文章:
- firefox插件:退出不工作的应用程序观察器
- 如何从Node Webkit应用程序中退出外部CMD文件
- 如何退出全屏网络应用程序
- BackAndroid不会退出应用程序
- 如何使硬件后退按钮成为退出应用程序
- Secha触摸应用程序退出按钮
- 如何在不退出应用程序的情况下在iOS上检测4个手指触摸
- 从网站/退出应用程序启动JavaScript
- 科尔多瓦应用程序在后台运行一段时间后退出
- “使用代码 8 退出”示例流星应用程序
- 如何退出android版的Phonegap应用程序
- PhoneGap后退按钮退出应用程序
- 在Android应用程序(Phonegap&AngularJS)中按下后退按钮时应用程序退出不起作用
- 如果无法访问其他服务器,Node.js应用程序将退出.如何防止应用程序停止
- 应用程序在退出和重新进入后表现不同
- SAPUI5在退出android中的应用程序之前显示确认
- Firefox插件:无法收听Firefox "退出-应用程序"事件
- 我尝试使用R Shiny部署一个应用程序,但网页立即退出,并说诊断信息已记录到我的JavaScript控制台
- 如何在用户退出应用程序后自动登录到登录页面
- 在Android PhoneGap上长按按钮退出应用程序