Request: рдХрд┐рд╕реА рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд░рд╕реНрдд рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЬрдире░ 2014  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: request/request

рдореИрдВ рдШрдВрдЯреЛрдВ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд░рд╕реНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

app.get('/theUrl', function (req, resp) {

  var parser = new Transform();
  parser._transform = function(data, encoding, done) {
    var _this = this;
    // Process data here
  }.on("error", function(err){
        console.log(err);
      });

  var theRequest = request({
    'method' : 'GET',
    'url': '/anotherUrl',
    'headers' : {
      "ACCEPT"  : "text/event-stream"
    }
  }, function (error, response, body){
    if (error) {
      //Throw error
    }
  }).pipe(parser).pipe(resp);

  req.on("close", function(){
    parser.end();
    theRequest.abort(); //Doesn't work
  });
});

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рддрд░рд╣ рдПрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реВрдВ рдФрд░ рдЕрдЧреНрд░реЗрд╖рдг рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдВрдж рдпрд╛ рдирд┐рд░рд╕реНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ( theRequest )ред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

var r = request(url)
r.abort()

рд╣рдореЗрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

var r = request(url)
r.abort()

рд╣рдореЗрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрддреНрддрд░ @mikeal рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА:

var theRequest = request({
  'method' : 'GET',
  'url': '/anotherUrl',
  'headers' : {
    "ACCEPT"  : "text/event-stream"
  }
}, function (error, response, body){
  if (error) {
    //Handle error
  }
}).pipe(parser);

theRequest.abort();

рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЙрдард╛рддреА рд╣реИ:

/home/vagrant/gateway/app.js:876
      theRequest.abort();
                 ^
TypeError: Object #<ServerResponse> has no method 'abort'
    at IncomingMessage.<anonymous> (/home/vagrant/gateway/app.js:876:18)
    at IncomingMessage.EventEmitter.emit (events.js:92:17)
    at abortIncoming (http.js:1912:11)
    at Socket.socket.onend (http.js:2010:7)
    at Socket.g (events.js:180:16)
    at Socket.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:920:16
    at process._tickCallback (node.js:415:13)

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╢реБрдХреНрд░рд┐рдпрд╛!

рдбреЙрдХреНрд╕ рд╕реЗ:

pipe() рдЧрдВрддрд╡реНрдп рд╕реНрдЯреНрд░реАрдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ

рдЗрд╕рд▓рд┐рдП рдЕрдм рдЖрдк Request рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк abort() рдХреЛ ServerResponse рдкрд░ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдРрд╕рд╛ рдХрд░реЗрдВ:

var theRequest = request({ ... });

theRequest.pipe(parser);

theRequest.abort();

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ORESoftware picture ORESoftware  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Aranir picture Aranir  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andornaut picture andornaut  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xin7c picture xin7c  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

codecowboy picture codecowboy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ