La plus simple nodejs serveur echo

Je suis de se familiariser avec les flux de nodejs et j'ai une question:

J'ai ce que je pense est le plus simple possible nodejs "serveur echo" c'est à dire un serveur de simples tuyaux de retour pour le flux de réponse quelle qu'elle reçoit par l'intermédiaire de la demande de flux.
Cela fonctionne, mais avec une mise en garde. Le client reçoit uniquement les données de retour après la fermeture de la soumission de flux.
Voici le code du serveur:

var http = require('http')
var server = http.createServer(function (req, res) {
  req.pipe(res);
});
server.listen(8000);

Et voici comment je l'ai tester:

De faire ce qui suit fonctionne très bien

term1> node server.js&

term2> echo 'hello world!'|curl --no-buffer --data-binary  @-  'http://localhost:8000'
hello world!

Toutefois, il ne fonctionne que parce que l'écho ferme sa sortie descripteur de fichier après avoir été fait, c'est à dire., le serveur ne va pas écrire quoi que ce soit jusqu'à ce que après son client se fait envoyer des trucs:

term2>
term2> yes|curl --no-buffer --data-binary  @-  'http://localhost:8000'

(cette ligne est coincé pour toujours)

Je m'attends à ce que yes remplira stream tampons assez rapide donc je voudrais commencer à voir y revenir assez vite. Malheureusement ils ne le font jamais.

Est-ce prévu? Comment dois-je utiliser les cours d'eau/tuyaux de sorte qu'ils ont l'effet désiré?
Par la manière, je ne suis pas de soins si la sortie serait revenir en morceaux... je comprends que ce serait les résultats de flux (ou le fichier sous-jacent i/o) en faisant de leur mise en mémoire tampon de la magie.

Merci pour votre aide

OriginalL'auteur Diomedes | 2013-06-19