2012-09-10 5 views
6
zu Speichern

So das ist mein Setupnode.js - Stream-Datei, ohne es vorübergehend

ist habe ich einen Klienten, von dem Dateien auf dem Server node.js (serverA) hochgeladen und von dort möchte ich die Dateien streamen zu ein anderer Server (ServerB) ohne Speichern der Datei vorübergehend (auf ServerA).

Was ist der einfachste und beste Weg dies zu erreichen?

Ich kann die Datei auf ServerA hochladen, aber ich möchte nicht die temporäre Datei gespeichert werden.

Update:

seine eine einfache Ajax-Datei uplaod bis (Severa) ... Die Idee ist byteweise zu übertragen, so dass, selbst wenn die Verbindung losgeht, können Sie es zurück von diesem bestimmten lesen Byte.

Ich benutze express.js auf serverA und backbone.js ist der Client mit dem ich die Ajax-Uploads mache. Momentan gibt es keine Verbindung zwischen A und B, sie kommunizieren über Endpunkte. ServerA läuft auf Port 4000 und ServerB auf Port 5000. Ich möchte die Datei irgendwie von ServerA zu einem Endpunkt auf ServerB leiten.

+0

Wie erhalten Sie diese Datei? Wie schiebst du die Datei? Was tun Sie bei Verbindungsproblemen? – Brad

+0

es ist eine einfache Ajax-Datei uplaod zu (severA) ... Die Idee ist, Byte-weise zu übertragen, so dass selbst wenn die Verbindung ausgeht, Sie es von diesem bestimmten Byte zurück lesen können. – Madhusudhan

+0

Können Sie weitere Details hinzufügen? Also verwendet Ihre Node.js-Anwendung auf Server A, was dieses AJAX-Skript hostet? Der integrierte HTTP-Server? Was ist mit Server B? Was verwendest du für die Verbindung zwischen den beiden? – Brad

Antwort

2

Da Httprequest ist ein Strom, können Sie das request Modul Rohr die aktuelle Anforderung in den anderen Endpunkt innerhalb Ihrer ausdrücklichen Route verwenden:

app.post('myroute', function (req, res) { 
    var request = require('request'); 
    req.pipe(request.post('/my/path:5000')).pipe(res); 
}); 

würde das Konzept der Arbeit?

+0

Ja, ich habe den gleichen Ansatz gewählt. Da ich auch den Inhaltsbereich und die Inhaltslänge senden musste, entfernte ich das fs.write von node-formidable und ersetzte es durch res.write zum Server B ... – Madhusudhan