2012-09-10 16 views
6

Więc to jest moja konfiguracjanode.js - strumień plik bez zapisywania go tymczasowo

Mam klienta, z którego pliki są przesyłane do serwera node.js (Servera) i stamtąd chcę przesyłać pliki do inny serwer (serwer B) bez zapisywanie pliku tymczasowo (na serwerze A).

Jaki jest najprostszy i najlepszy sposób, aby to osiągnąć?

Jestem w stanie przesłać plik do serwera A, ale nie chcę, aby plik tymczasowy był przechowywany.

Aktualizacja:

Jego prosty plik ajax uplaod do (Severa) ... Chodzi o to, aby przekazać byte-wise tak, że nawet jeśli połączenie zgaśnie, można go odczytać z powrotem, że zwłaszcza bajt.

Używam express.js na serwerze A, a backbone.js jest klientem, za pomocą którego ładuję ajax. Na razie nie ma połączenia między A i B jako takimi, komunikują się za pośrednictwem punktów końcowych. serwer A działa na porcie 4000 i serwerze B na porcie 5000. Chcę jakoś potokować plik z serwera A do punktu końcowego na serwerzeB.

+0

Jak otrzymujesz ten plik? Jak przesuwasz plik? Co robisz w przypadku problemów z połączeniem? – Brad

+0

to prosty plik ajax uplaod do (severA) ... Pomysł polega na przeniesieniu bajtów tak, aby nawet jeśli połączenie się wyłączyło, możesz odczytać go z tego bajtu. – Madhusudhan

+0

Czy możesz dodać więcej szczegółów? Zatem twoja aplikacja Node.js na serwerze A używa tego, co hostować ten skrypt AJAX? Wbudowany serwer http? A co z serwerem B? Czego używasz do połączenia między tymi dwoma? – Brad

Odpowiedz

2

Od HttpRequest jest strumień, można użyć modułu request do rury aktualny wniosek do innego punktu końcowego wewnątrz drogi ekspresowej:

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

byłoby tej pracy podejście?

+0

Tak, użyłem tego samego podejścia. Ponieważ musiałem również wysłać zakres zawartości i długość treści, usunąłem fs.write z węzła-budzący grozę i zastąpiłem go res.write na serwerze B ... – Madhusudhan

Powiązane problemy