2016-06-23 10 views
0

Ich habe diesen Nodejs-Code aber zu sein Honeste Ich kann nicht ganz verstehen, was .pipe tut.Nodejs Request-Pipe beendet Antwort

var localoptions = { 
    url: requestUrl, 
    milliseconds, default is 2 seconds 
}; 


if (authHeader) { 
    localoptions.headers = { 
    "Authorization": authHeader 
    }; 
} 

request(localoptions) 
.on('error', function(e) { 
res.end(e); 
}).pipe(res); 

In diesem Fall ist die Antwort von einer Funktion, die eine bestimmte Route behandelt.

Wird in diesem Fall .pipe die res-Antwort mit der Antwort beenden, die es erhält?

Antwort

0

Wenn Sie Rohr in einen Stream dann wird das Ziel, sobald die Quelle Enden geschlossen werden (erwarten, wenn Sie einen end Rückruf als Option übergeben)

readable.pipe(destination[, options]):

options<Object> Rohr Optionen
end<Boolean> Beenden Sie den Schreiber, wenn der Reader endet. Standardeinstellung ist true.

Und hier der entsprechende Teil in der Quelle node: stream.js

// If the 'end' option is not supplied, dest.end() will be called when 
// source gets the 'end' or 'close' events. Only dest.end() once. 
if (!dest._isStdio && (!options || options.end !== false)) { 
    source.on('end', onend); 
    source.on('close', onclose); 
} 

var didOnEnd = false; 
function onend() { 
    if (didOnEnd) return; 
    didOnEnd = true; 

    dest.end(); 
} 
Verwandte Themen