2013-10-11 1 views
0

Как я могу обрабатывать ситуацию, когда файл не существует на сервере или не удается подключиться к серверу, чтобы получить файл?обрабатывать ошибки ответа на файл https

Начиная с приведенного ниже кода, загрузка файла по-прежнему происходит, и файл пуст.

var https = require('https'); 
var fs = require('fs'); 
var exec = require('child_process').exec; 
var file = fs.createWriteStream('mediaserver_setup.exe'); 
var len = 0; 
var req = https.get(url + 'appdata/update_setup.exe', function (res) { 
    if (res.statusCode === 404) { 
    alert('problem with request:'); 
    } 
    res.on('data', function (chunk) { 
    file.write(chunk); 
    len += chunk.length; 
    var percent = (len/res.headers['content-length']) * 100; 
    progressLoading.val(percent); 
    }); 
    res.on('end', function() { 
    setTimeout(function() { 
     file.close(); 
    }, 500); 
    }); 
    file.on('close', function() { 
    win.close(); 
    exec('update_setup.exe'); 
    }); 
}); 
req.on('error', function (err) { 
    alert('problem with request: '); 
}); 

ответ

0

Используйте error событие для запросов, или проверить код состояния ответа:

var https = require('https'); 
var req = https.get(options, function(res) { 
    // use res.statusCode 
    if (res.statusCode === 404) { 
    // example for checking 404 errors 
    } 
}); 

req.on('error', function(err) { 
    // an error has occurred 
}); 
+0

Вы можете проверить обновления выше .. что я делаю неправильно? –

+0

Используйте обработчики событий за пределами обратного вызова. – hexacyanide

Смежные вопросы