簡體   English   中英

帶有HTTPS請求的Node.JS UnhandledException

[英]Node.JS UnhandledException with a HTTPS request

我需要一些幫助試圖阻止節點拋出此錯誤,或者至少理解為什么我似乎無法捕獲它:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: socket hang up
at SecurePair.error (tls.js:999:23)
at EncryptedStream.CryptoStream._done (tls.js:695:22)
at CleartextStream.read [as _read] (tls.js:496:24)
at CleartextStream.Readable.read (_stream_readable.js:320:10)
at EncryptedStream.onCryptoStreamFinish (tls.js:301:47)
at EncryptedStream.g (events.js:175:14)
at EncryptedStream.EventEmitter.emit (events.js:117:20)
at finishMaybe (_stream_writable.js:354:12)
at endWritable (_stream_writable.js:361:3)
at EncryptedStream.Writable.end (_stream_writable.js:339:5)
at EncryptedStream.CryptoStream.end (tls.js:633:31)
at Socket.onend (_stream_readable.js:483:10)

這是導致錯誤的代碼段:

var req = https.request(options, function(res) {
  res.setEncoding('utf8');
  var buffer = '';
  res.on('data', function(data) {
    buffer += data;
  });
  res.on('end', function() {
    try {
      var json = JSON.parse(buffer);
    } catch (err) {
      return callback(err);
    }
    callback(null, json);
  });
});
req.on('error', function(err) {
  callback(err);
});
req.end(data);

api.prototype._get = function(action, callback, args) {
  args = _.compactObject(args);
  var path = '/api/' + action + '/?' + querystring.stringify(args);
  this._request('get', path, undefined, callback, args)
}

api.prototype._post = function(action, callback, args) {
  var path = '/api/' + action + '/';
  args = _.compactObject(args);
  var data = querystring.stringify(args);
  this._request('post', path, data, callback, args);
}

為什么不req.on('錯誤'抓住這個錯誤?

節點版本:0.10.21

您錯過了響應的錯誤處理程序。

res.on('error', function errorHandler(err) { console.log(err); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM