λͺ μκ° λμ μμ²μ μ€λ¨νλ €κ³ νμ΅λλ€. μ무λ λμμ€ μ μμ΅λκΉ?
μ΄κ²μ΄ λ΄κ° κ°μ§ κ²μ λλ€.
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()
Aμ ServerResponse
. λμ λ€μμ μννμμμ€.
var theRequest = request({ ... });
theRequest.pipe(parser);
theRequest.abort();
μ λ§ κ°μ¬ν©λλ€!
μ λ§ κ°μ¬ν©λλ€!
κ°μ₯ μ μ©ν λκΈ
μ°λ¦¬λ μ΄κ²μ λ¬Έμμ λ£μ΄μΌ ν©λλ€.