рдореИрдВ рдШрдВрдЯреЛрдВ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд░рд╕реНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:
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()
рд╣рдореЗрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрддреНрддрд░ @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();
рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рдореЗрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред