fs.createReadStream et .pipe()

Je suis en train de poster un gros fichier à un autre serveur à l'aide de request.post() de la trousse de demande en Node.js et j'obtiens:

(node) warning: Recursive process.nextTick detected. This will break in the next version    of node. Please use setImmediate for recursive deferral.

RangeError: Maximum call stack size exceeded

J'ai pensé que c'est parce que c'est un gros fichier (80 MO) parce que les plus petits fichiers, beau travail, je suis donc maintenant essayer de mettre en œuvre un flux:

var options = {
    url: aURLIHaveDefined,
    headers: {
        'User-Agent': 'MyRestAPI'
    },
    auth: {
        username: creds.username,
        password: creds.password
    },
    strictSSL: false,
    json: true
}

var readStream = fs.createReadStream(filePathIHaveDefined);

readStream.pipe(options);

Et j'obtiens l'erreur:

TypeError: Object #<Object> has no method 'on'

Personne ne sait la syntaxe pour inclure les options dans le tuyau et pourquoi j'obtiens cette erreur?

Mise à JOUR (après sousa commentaire):
J'ai essayé:

readStream.pipe(request(options));
readStream.on('end', function() {
     console.log('end of readStream'+fileName);
});

Il n'a pas d'erreur, mais il ne semble pas faire quoi que ce soit. Le programme s'exécute et je ne vois jamais de console.log() ?

Mise à JOUR #2:

En utilisant le manuel d'aide ici, a constaté que vous pouvez faire ceci:

fs.createReadStream('file.json').pipe(request.put('http://....'))

J'ai donc ajouté le request.post() à l'intérieur du tuyau et il semble que j'y suis presque! Aide:

readStream.pipe(
    request.post(options, 
         function(error, response, data) {  

                if (error) {
                    console.log(": Cannot upload file to " + creds.server + " due to " + error);
                    setImmediate(failureCallback(error)); 
                } else {
                    console.log(": file uploaded to " + data);
                    //send back data, which is url of uploaded file
                    setImmediate( successCallback(data) ); 
                }
            }
        )
    );

Je reçois un message d'erreur indiquant que la longueur doit être connue:

Apache Tomcat/5.5.17 - rapport d'Erreur d'État HTTP 411 - Longueur Requise
sa demande ne peut être traitée sans un contenu défini par la longueur (la Longueur
Requis).

OriginalL'auteur SOUser | 2014-02-21