节点 Webkit http 崩溃
Node Webkit http crash
所以我正在拉远程 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);
});
});
我猜我缺乏经验,我在某种程度上错误地设置了错误检查?你们中的任何人都可以提供答案,以便应用程序不会在启动时崩溃吗?
我找到了答案。
我需要在 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.");
}
});
所以我正在拉远程 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);
});
});
我猜我缺乏经验,我在某种程度上错误地设置了错误检查?你们中的任何人都可以提供答案,以便应用程序不会在启动时崩溃吗?
我找到了答案。
我需要在 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.");
}
});