Node Webkit http崩溃

时间:2017-09-01 09:28:36

标签: node-webkit

所以我将远程JSON拉入为自动更新程序提供版本号,如果我在线,我可以将文件拉得很好,我禁用了我的网络适配器强制没有连接​​,应用程序崩溃到桌面。

这是我的代码:

var http = require('http');
var options = {
    host: 'xxxx.xxxx.io',
    path: '/remote.json'
};

var req = http.get(options, function (res) {
var response = "";

    res.on("data", function (data) {
        response += data;
        var json = response;
        console.log("output:\n" + response);
    });
    res.on("error", function (e) {
        response += e;
        console.log(e);
    });
    res.on("uncaughtException", function (err) {
        response += err;
        console.log(err);
    });
    res.on("end", function () {
        console.log("end:\n" + response); 
    });
});

我想我的经验不足,我在某种程度上错误地设置了错误检查?你们中的任何人都可以提供答案,以便应用程序在启动时不会崩溃吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。

我需要在http.get函数之外声明on.error。

var http = require('http');
var options = {
   host: 'xxx.xxxxx.io',
   path: '/remote.json',
   method: 'get'
};

var res = http.get(options, function (res) {
   var response = "";

   res.on("data", function (data) {
   response += data;
});
res.on("end", function () {
    console.log("output:\n" + response); 
    var json = JSON.parse(response);
    console.log(json.type);
  });
})

.setTimeout(3000, function() {
   console.log("ERROR: The connection timed out.");
   res.abort();
})

.on('error', (e) => {
  if (e.code === "ENOENT") {
    console.log("ERROR: There is no Internet connection.");
  }
});