Request: μš”μ²­μ„ μ€‘λ‹¨ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

에 λ§Œλ“  2014λ…„ 01μ›” 15일  Β·  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() A의 ServerResponse . λŒ€μ‹  λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ‹­μ‹œμ˜€.

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

theRequest.pipe(parser);

theRequest.abort();

정말 κ°μ‚¬ν•©λ‹ˆλ‹€!

정말 κ°μ‚¬ν•©λ‹ˆλ‹€!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰